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

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

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

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

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

С уважением ко всем сетянам Алексей.
Просмотров: 5516
 
Непрочитано 19.11.2006, 20:23
#2
Серёга - Bilder

проектирование гидротехнических сооружений
 
Регистрация: 20.02.2006
Москва
Сообщений: 5,022


Элементарно Ватсон!
По шагам:
1. Выбираете всё что Вам необходимо промасштабировать.
2. Нажимаете "копировать" (предпочитаю с базовойй точкой)
3. Нажимаете "всавить как блок"
4. Указываете точку вставки
5. Выбираете получившийся блок
6. -> свойства
7. В свойствах находите три стройки "масштаб Х, масштаб Y, масштаб Z" - напротив них всех стоит 1.
8. Ставите вместо "1" в соответствующих строках нужные вам масштабы - получаете на своём лице

Дальше для работы можно расчленить блок - только аккуратно - чтоб штриховки не бахнкть :twisted:
Серёга - Bilder вне форума  
 
Непрочитано 19.11.2006, 20:29
#3
gest

GEODATA Engineering S.p.A.
 
Регистрация: 11.02.2005
Монино
Сообщений: 692


Серёга - Bilder
Метод конечно хорош, но круги превращаются в эллипсы, да еще много чего может вылезти, сам использую вот это,
к сожалению уже не помню чье творение, но она масштабирует корректно.
Код:
[Выделить все]
(defun C:NSCALE (/ KX KY NAB T0)
  (setvar "CMDECHO" 0)
  (setq NAB (ssget))
  (setq T0 (getpoint "Укажите базовую точку :"))
  (setq KX (getreal "Коэффициент масштаба по оси ОХ <1>: "))
  (if (not KX)
    (setq KX 1)
  )
  (setq KY (getreal "Коэффициент масштаба по оси ОY <1>: "))
  (if (not KY)
    (setq KY 1)
  )

  (command "_-BLOCK" "$$$TEMP$$$" T0 NAB "")
  (command "_-INSERT" "$$$TEMP$$$" T0 KX KY 0)
  (command "_EXPLODE" (entlast))
  (command "_-PURGE" "_B" "$$$TEMP$$$" "_N")
)
gest вне форума  
 
Непрочитано 19.11.2006, 20:40
#4
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Для DaiverNet.
А у вас в "чертеже" присутствуют трехмерные объекты?
Profan вне форума  
 
Непрочитано 19.11.2006, 21:45
#5
Серёга - Bilder

проектирование гидротехнических сооружений
 
Регистрация: 20.02.2006
Москва
Сообщений: 5,022


Гест:
Цитата:
Метод конечно хорош, но круги превращаются в эллипсы, да еще много чего может вылезти.....
Может я чего-то не понимаю, но как мне кажется если круг смасштабировать по оси Х в 10 раз, а по Y - в 20 раз, то по определению должны получить элипс? - или я торможу? :roll:
Серёга - Bilder вне форума  
 
Непрочитано 19.11.2006, 21:51
#6
gest

GEODATA Engineering S.p.A.
 
Регистрация: 11.02.2005
Монино
Сообщений: 692


Попробуй взять для круга масштаб по X=10 и по Y=10 и у тебя после разбивки получится эллипс, я подразумевал эту проблему.
gest вне форума  
 
Непрочитано 19.11.2006, 22:21
#7
Серёга - Bilder

проектирование гидротехнических сооружений
 
Регистрация: 20.02.2006
Москва
Сообщений: 5,022


Гест:
Цитата:
Попробуй взять для круга масштаб по X=10 и по Y=10 и у тебя после разбивки получится эллипс, я подразумевал эту проблему
Ааааа, вон ты о чём! Щас попробовал - чесна слово - первый раз в жизни увидел - и правда - круг превращается в элипс :P
Серёга - Bilder вне форума  
 
Непрочитано 19.11.2006, 22:30
#8
gest

GEODATA Engineering S.p.A.
 
Регистрация: 11.02.2005
Монино
Сообщений: 692


Легким движением руки круг превращается :wink:
Серёга - Bilder Кстати с тысячным сообщением тебя :wink:
Извиняйте за флуд.
gest вне форума  
 
Автор темы   Непрочитано 20.11.2006, 09:07
#9
DaiverNet


 
Регистрация: 19.11.2006
Rostov-on-Don
Сообщений: 3


Для Profan на чертежах нанесены точки по трем координатам Х, У, Z положение которых и нужно изменить(маштабировать) по всем трем осям координат. Вообще черчу инженерные коммуникации по факту строительства, очень удобно строить по всем трем координатам сразу, затем меняю вид ХУ, по оси Z в итоге получается план и профиль(разрез) коммуникаций. Может быть кто знает другие способы чертить коммуникации?
DaiverNet вне форума  
 
Автор темы   Непрочитано 20.11.2006, 10:56
#10
DaiverNet


 
Регистрация: 19.11.2006
Rostov-on-Don
Сообщений: 3


Большое спасибо всем тем кто откликнулся, ваши советы очень помогли.
DaiverNet вне форума  
 
Непрочитано 20.11.2006, 13:36
#11
Krieger

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


Цитата:
Сообщение от Гест
Серёга - Bilder
Метод конечно хорош, но круги превращаются в эллипсы, да еще много чего может вылезти, сам использую вот это,
к сожалению уже не помню чье творение, но она масштабирует корректно.
Код:
[Выделить все]
(defun C:NSCALE (/ KX KY NAB T0)
  (setvar "CMDECHO" 0)
  (setq NAB (ssget))
  (setq T0 (getpoint "Укажите базовую точку :"))
  (setq KX (getreal "Коэффициент масштаба по оси ОХ <1>: "))
  (if (not KX)
    (setq KX 1)
  )
  (setq KY (getreal "Коэффициент масштаба по оси ОY <1>: "))
  (if (not KY)
    (setq KY 1)
  )

  (command "_-BLOCK" "$$$TEMP$$$" T0 NAB "")
  (command "_-INSERT" "$$$TEMP$$$" T0 KX KY 0)
  (command "_EXPLODE" (entlast))
  (command "_-PURGE" "_B" "$$$TEMP$$$" "_N")
)
Может я торможу, но этот код выполняет в точности то-же самое что сказал Серёга - Bilder. Загоняешь в блок, вставляешь с масштабом, расчленяшь. :?
Krieger вне форума  
 
Непрочитано 20.11.2006, 13:40
#12
gest

GEODATA Engineering S.p.A.
 
Регистрация: 11.02.2005
Монино
Сообщений: 692


Krieger
Зато она позволяет при маштабировании сохранять геометрию (в основном круга), в отличии от способа указанного Серёга - Bilder.
По командам действительно похоже, не пойму в чем секрет :?:
gest вне форума  
 
Непрочитано 20.11.2006, 13:54
#13
Krieger

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


Гест
Сейчас попробывал, короче, если меняем одинаково все три координаты, то окружность остаётся окружностью (хэть как масштабируй). Если поменять только X и Y, а Z оставить другой, то видим круг, а примитив поменяется на эллипс.
Вообщем, весь секрет в лени забить еще одну цифру.
Krieger вне форума  
 
Непрочитано 20.11.2006, 14:06
#14
gest

GEODATA Engineering S.p.A.
 
Регистрация: 11.02.2005
Монино
Сообщений: 692


Krieger
Работал всегда в основном в плоскости X, Y и масштаб по третьей координате думал не причем, хотя лишнюю координату вбивать действительно не охота :wink:
Спасибо за объяснения.
gest вне форума  
 
Непрочитано 20.11.2006, 14:48
#15
Om81

Хочу быть фотографом :)
 
Регистрация: 21.10.2005
Москва, Кисловодск
Сообщений: 2,538
<phrase 1=


Да, Серега - теперь Гуру (правда, это раньше было - потом отменили звания)
Om81 вне форума  
 
Непрочитано 20.11.2006, 19:48
#16
Серёга - Bilder

проектирование гидротехнических сооружений
 
Регистрация: 20.02.2006
Москва
Сообщений: 5,022


1000+1
Om81:
Цитата:
Да, Серега - теперь Гуру (правда, это раньше было - потом отменили звания)
- если память не изменяет - Гуру - это 300 постов было? :wink: А тех у кого больше 1000 - назначили "почётными флудерами" или что-то типа того... правда после этого очень быстро вообще все звания отменили :wink:
Серёга - Bilder вне форума  
 
Непрочитано 20.11.2006, 20:48
#17
Om81

Хочу быть фотографом :)
 
Регистрация: 21.10.2005
Москва, Кисловодск
Сообщений: 2,538
<phrase 1=


Блин, и правда.. Ты ведь уже вроде был гуру(?)
Ну значит теперь можешь безбожно флудить и советовать всякую фигню.. как я )))
Om81 вне форума  
 
Непрочитано 21.11.2006, 08:08
#18
Кулик Алексей aka kpblc
Moderator

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


> Серёга - Bilder : Ага, потому что на вопрос "как не стать почетным флудером?" был ответ "пиши по нечетным"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.11.2006, 19:58
#19
Серёга - Bilder

проектирование гидротехнических сооружений
 
Регистрация: 20.02.2006
Москва
Сообщений: 5,022


Раз уж в такой далёкий оффтоп ушли - то пофлудю (раз уж "положение обязывает" :wink: )

- меня ничуть не обидит звание "почётный флудер" - т.к. это, ИМХО, оно значительно ближе к истине, чем звание "ГУРУ" - касаемо меня
Серёга - Bilder вне форума  
 
Непрочитано 21.11.2006, 20:04
#20
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Цитата:
Сообщение от kpblc
> Серёга - Bilder : Ага, потому что на вопрос "как не стать почетным флудером?" был ответ "пиши по нечетным"
Насколько Я помню звание "Почетный флудер" удостоился именно ТЫ (без обид)
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 22.11.2006, 08:17
#21
Кулик Алексей aka kpblc
Moderator

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


> 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,431


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,431


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