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

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

Неравномерное масштабирование \ растяжение

Ответ
Поиск в этой теме
Непрочитано 26.08.2009, 20:11 #1
Неравномерное масштабирование \ растяжение
Serj3d
 
Регистрация: 26.08.2009
Сообщений: 2

Доброго вечера Всем,
есть очень наболевшие вопросы:

1)Как в AUTOCAD 2006 неравномерно масштабировать объекты, то есть
по оси X растянуть больше чем по Y. В поиске ответа не нашёл.

2)Можно-ли растягивать (STRECH) несколько объектов, а так же блоки?

Прошу прощения за наивные вопросы (работа горит синим пламенем)
одна надежда на профессионалов
Просмотров: 9507
 
Непрочитано 26.08.2009, 20:13
#2
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,518


по-моему масштабирование по осям возможно только при вставке блока
Рyslan вне форума  
 
Непрочитано 26.08.2009, 20:19
#3
Pum-purum

PHP-разработчик
 
Регистрация: 12.05.2008
Ижевск
Сообщений: 1,166


1) Давно уже проблема решена с помощью лиспа scale_Den (автор Денис Флюстиков)
Код:
[Выделить все]
;|====================================================

Изменение масштаба объектов в направлениях X и Y двумя способами:
1. Аналогично команде amscalexy (Масштаб X,Y) из MDT.
2. С указанием 3-х точек (базоый угол контура, противоположный
   угол исходного контура и противоположный угол нового контура).

Программа Дениса Флюстикова "Scale_Den" от 01.12.06
Новое:
Возможность отключения функции сохранения свойств полилиний при масштабировании
(правый клик при первом диалоге)

Макрос для кнопки: ^C^C^P(load "scale_Den");scale_Den

Замечания и предложения по адресу fd-@mail.ru

====================================================|;

(defun c:scale_Den (/ a1 a2 a3 b1 b2 c1 c2 c3 c4 c5 x1 x2 x3 x4 y1 y2 y3 y4
		    k_x k_y t1 explmode osmode ucsfollow *error*)

(setq  a1 (ssget "_i")
       a3 "temp"
       explmode (getvar "EXPLMODE")
       osmode (getvar "OSMODE")
       b2 0)
(sssetfirst)

(if a1 (princ (strcat "\nнайдено: " (rtos (sslength a1))))
(while (null a1)
(princ (strcat "\nВыбор объектов <" (nth b2 '("Без сохранения свойств полилинии"
					      "С сохранением свойств полилинии")) ">:"))
(setq a1 (ssget)
      b2 (abs (1- b2)))
))

(setq a2 (getpoint "\nБазовая точка или <Базовый угол контура>:"))

(if a2 (progn
(initget 6 "О")
(setq k_x (getreal "\n<X-масштаб>/Опорная длина [Опорная длина] <1>:"))
(if k_x
(if (= k_x "О")
(setq k_x (getdist "\nОпорная длина:")
      t1 (getdist "\nНовая длина :")
      k_x (/ t1 k_x)))(setq k_x 1))
(setq k_y (strcat "\n<Y-масштаб>/Опорная длина [Опорная длина] <" (rtos k_x 2 4) ">:"))
(initget 6 "О")
(setq k_y (getreal k_y))
)
(progn
(setq a2 (getpoint "\nБазовый угол контура:"))

(setvar "CMDECHO" 0) 
(princ (strcat "\nВторой угол исходного контура:"))

(setq b1 (vl-cmdf "_.rectang" a2 pause)
      k_x nil)

(if b1 (progn
(princ (strcat "\nВторой угол нового контуру:"))
(setq b1 (getvar "lastpoint")
      x1 (car a2)
      y1 (cadr a2)
      x2 (car b1)
      y2 (cadr b1)
      b1 (vl-cmdf "_.rectang" a2 pause))

(if b1
(setq b1 (getvar "lastpoint")
      x4 (car b1)
      y4 (cadr b1)
      x3 (- x4 x1)
      y3 (- y4 y1)
      x1 (- x2 x1)
      y1 (- y2 y1)
      k_x (/ x3 x1)
      k_y (/ y3 y1))
)
(command "_.undo" 1)
))
(command "_.undo" 1)
))
(setvar "CMDECHO" 1)

(if (and k_x (/= k_x 0))(progn
(if k_y (progn
(if (= k_y "О")
(setq k_y (getdist "\nОпорная длина:")
      t1 (getdist "\nНовая длина :")
      k_y (/ t1 k_y)))))

(if (/= k_y 0)(progn
(if k_y (setq y1 k_y)(setq y1 k_x))
(setq b1 (sslength a1))

(vl-load-com)
(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))

(setq a2 (trans a2 1 0)
      ucsfollow (getvar "UCSFOLLOW"))
(setvar "CMDECHO" 0)
(setvar "OSMODE" 0)
(setvar "UCSFOLLOW" 0)
(setvar "EXPLMODE" 1)
(command "_.ucs" "_w")

(defun *error* (msg)
(command "_.ucs" "_p")
(setvar "UCSFOLLOW" ucsfollow)
(setvar "OSMODE" osmode)
(setvar "CMDECHO" 1)
(setvar "EXPLMODE" explmode)
(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
)

(if (= b2 1)
(repeat b1

(setq b1 (1- b1)
      c5 (ssname a1 b1)
      c1 c5)

(if (= (cdr (assoc 0 (entget c5))) "POLYLINE")(progn

(while c1

(setq c1 (entnext c1)
      c3 (entget c1))

(if (= (cdr (assoc 0 c3)) "VERTEX")(progn
(setq c2 (assoc 10 c3)
      c4 (mapcar '- (cdr c2) a2)
      c4 (mapcar '* c4 (mapcar '- (list k_x y1 1) '(1 1 0)))
      c4 (mapcar '+ (cdr c2) c4))
(entmod (subst (cons 10 c4) c2 c3))
))
(if (= (cdr (assoc 0 c3)) "SEQEND")
(setq c1 nil)
))
(setq a1 (ssdel c5 a1))
(entupd c5)
)
(if (= (cdr (assoc 0 (entget c5))) "LWPOLYLINE")(progn
(setq a1 (ssdel c1 a1)
      c1 (entget c1)
      c5 '())
(foreach c2 c1 (progn
(if (= (car c2) 10)
(setq c2 (cdr c2)
      c4 (mapcar '- c2 a2)
      c4 (mapcar '* c4 (mapcar '- (list k_x y1 1) '(1 1 0)))
      c2 (mapcar '+ c2 c4)
      c2 (cons 10 c2)))
(setq c5 (cons c2 c5))))
(entmod (reverse c5))
)))))

(if (> (sslength a1) 0) (if k_y (progn

(while (/= (tblsearch "block" a3) nil)
(setq a3 (strcat a3 "1")))
(command "_.block" a3 a2 a1 ""
	 "_.insert" a3 "_x" k_x "_y" k_y a2)
(while (= (getvar 'cmdactive) 1)
(command ""))

(command "_.explode" (entlast))

(setq b1 (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object))))

(if (eq (type (vl-catch-all-apply 'vla-Item (list b1 a3))) 'VLA-OBJECT)
(vl-catch-all-apply 'vla-Delete (list (vla-Item b1 a3))))
)
(command "_.scale" a1 "" a2 k_x))
)

(command "_.ucs" "_p")
(setvar "EXPLMODE" explmode)
(setvar "UCSFOLLOW" ucsfollow)
(setvar "OSMODE" osmode)
(setvar "CMDECHO" 1)

(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
)
(princ "\nЗначение должно быть ненулевым.")
))
(princ "\nЗначение должно быть ненулевым.")
)
(princ)
)
Pum-purum вне форума  
 
Непрочитано 26.08.2009, 20:19
#4
Krieger

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


1) Можно масштабировать по осям только блоки.
2) А попробовать? Растягивать несколько объектов можно. Блоки нельзя. Растягиваются только динамические блоки, через их же параметры.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Автор темы   Непрочитано 26.08.2009, 20:43
#5
Serj3d


 
Регистрация: 26.08.2009
Сообщений: 2


Цитата:
Сообщение от Krieger Посмотреть сообщение
1) Можно масштабировать по осям только блоки.
2) А попробовать? Растягивать несколько объектов можно. Блоки нельзя. Растягиваются только динамические блоки, через их же параметры.
Огромное спасибо Всем!!
Serj3d вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Неравномерное масштабирование \ растяжение

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс прочности бетона на растяжение при изгибе. juri18 Железобетонные конструкции 28 30.07.2016 00:03
Учет работы болта на растяжение в расчете на срез. Гобар Конструкции зданий и сооружений 11 18.06.2009 14:51
SCAD. Плита не работающая на растяжение в верхней зоне Карлсон SCAD 49 15.05.2009 10:59
Бетон: взаимосвязь прочностей на сжатие и на растяжение. juri18 Железобетонные конструкции 42 13.02.2008 08:25
Растяжение колонн и д.ж. в сейсмике soulkeeper Расчетные программы 1 28.01.2008 23:36