Машстабирование объектов - Страница 2
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Машстабирование объектов

Машстабирование объектов

Ответ
Поиск в этой теме
Непрочитано 19.11.2006, 20:15
Машстабирование объектов
DaiverNet
 
Rostov-on-Don
Регистрация: 19.11.2006
Сообщений: 3

Уважаемые пользователи автокад! Напишите пожайлуста кто знает как масштабировать объекты (выделенный набор примитивов) конретно по осям х, у, z. Например нужно увеличить масштаб чертежа по осям х и у в 2 раза, и по оси z в 10 раз.Пробую увеличить масштаб командой "scale" получается что весь чертеж по всем трем осям меняет масштаб сразу. Как сделать чтобы изменить масштаб только по конкретной оси, не могу додумать.Помогите пожайлуста.

С уважением ко всем сетянам Алексей.
Просмотров: 5513
 
Непрочитано 22.11.2006, 08:17
#21
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426


> DEM : Было дело
> Серёга - Bilder : Меня тоже тяжко отнести к гурам
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.11.2006, 08:31
#22
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Цитата:
Сообщение от kpblc
Меня тоже тяжко отнести к гурам
Не скромничай. Гуру - это учитель. На месте автодеска я б тебе уже давно приплачивал за тех. поддрежку своего продукта.
Krieger вне форума  
 
Непрочитано 22.11.2006, 09:57
#23
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426


Krieger, спасибо, конечно Только масса народу знает больше. Я просто высказываюсь много
===
Да, вот еще один вариант для разного масштабирования. Учитывает 3 измерения, вроде как особых багов не заметил:
Код:
[Выделить все]
(defun c:nuscale (/           adoc        selset      base        *error*
                  *err-lst*   _cmdecho_   _explmode_  scale_x     scale_y
                  scale_z     blk_name_uniq
                  )
  (defun *error* (msg)
    (vla-endundomark adoc)
    (mapcar '(lambda (x)
               (vl-catch-all-apply '(lambda () (setvar (car x) (cdr x))))
               ) ;_ end of lambda
            *err-lst*
            ) ;_ end of mapcar
    (princ msg)
    (princ)
    ) ;_ end of defun

  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-StartUndoMark
  (vl-catch-all-apply
    (function
      (lambda ()
        (if (and (setq base (getpoint "\nБазовая точка <Выход> : "))
                 (setq selset (ssget "_:L"))
                 ) ;_ end of and
          (progn
            (setq blk_name_uniq "temp_blk_nus_scale"
                  scale_x       (abs (cond ((getreal "\nМасштаб по X <1> : "))
                                           (t 1.0)
                                           ) ;_ end of cond
                                     ) ;_ end of abs
                  scale_y       (abs (cond
                                       ((getreal
                                          (strcat "\nМасштаб по Y <" (rtos scale_x) "> : ")
                                          ) ;_ end of getreal
                                        )
                                       (t scale_x)
                                       ) ;_ end of cond
                                     ) ;_ end of abs
                  scale_z       (abs (cond
                                       ((getreal
                                          (strcat "\nМасштаб по Z <" (rtos scale_x) "> : ")
                                          ) ;_ end of getreal
                                        )
                                       (t scale_x)
                                       ) ;_ end of cond
                                     ) ;_ end of abs
                  ) ;_ end of setq
            (mapcar
              '(lambda (x)
                 (setq *err-lst*
                        (append *err-lst* (list (cons (car x) (getvar (car x)))))
                       ) ;_ end of setq
                 (setvar (car x) (cdr x))
                 ) ;_ end of lambda
              (list (cons "cmdecho" 0) (cons "explmode" 1) (cons "nomutt" 1))
              ) ;_ end of mapcar
            (while (tblobjname "block" blk_name_uniq)
              (setq blk_name_uniq
                     (strcat "temp_blk_nus_scale"
                             (itoa (1+ (atoi (vl-string-trim
                                               "temp_blk_nus_scale"
                                               blk_name_uniq
                                               ) ;_ end of vl-string-trim
                                             ) ;_ end of atoi
                                       ) ;_ end of 1+
                                   ) ;_ end of itoa
                             ) ;_ end of strcat
                    ) ;_ end of setq
              ) ;_ end of while
            (command "_.-block" blk_name_uniq base selset "")
            (command "_.-insert"  blk_name_uniq             base
                     "_xyz"       scale_x      scale_y      scale_z
                     0.
                     ) ;_ end of command
            (command "_.explode" "_l")
            (command "_.-purge" "_b" blk_name_uniq "_n")
            (mapcar '(lambda (x)
                       (vl-catch-all-apply '(lambda () (setvar (car x) (cdr x))))
                       ) ;_ end of lambda
                    *err-lst*
                    ) ;_ end of mapcar
            ) ;_ end of progn
          ) ;_ end of if
        ) ;_ end of lambda
      ) ;_ end of function
    ) ;_ end of vl-catch-all-apply
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
---
Добавлено: Нет отлова варианта ввода нулевых значений для масштабов. Надо?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.11.2006, 12:58
#24
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426


Кстати, советую (если еще нужно нечто подобное) посмотреть http://dwg.ru/dnl/191
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Машстабирование объектов

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск