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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Помогите пожалуйста, как редактировать такой мебельный фасад

Помогите пожалуйста, как редактировать такой мебельный фасад

Ответ
Поиск в этой теме
Непрочитано 17.06.2013, 12:01 #1
Помогите пожалуйста, как редактировать такой мебельный фасад
igordrob
 
Регистрация: 17.06.2013
Сообщений: 4

Здравствуйте подскажите пожалуйста как быстро изменять размеры такого мебельного фасада.
Состоит из нескольких 3д тел. При изменении размера нужно чтобы толщина 100 мм 4 внешних (рамок дверки) не изменялась
Буду очень благодарен за помощь

Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 76
Размер:	35.7 Кб
ID:	105678  

Просмотров: 1883
 
Непрочитано 17.06.2013, 14:16
#2
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


ты пиши внятнее! Если правильно тебя понял, то тебе надо менять габариты дверок, сохраняя ширину обвязки?
Если да, и это в трехмерке нарисовано, то попробуй программу Дениса Флюстикова

Код:
[Выделить все]
 ;|====================================================

Растяжение/сжатие 3D тел в указанной плоскости на заданную величину

Программа Дениса Флюстикова "Stretch3D_Den" от 20.10.09:
Возможность обработки и плоских примитивов командой "Растянуть" (с 2006-го AutoCAD)

Попытка сделать по просьбе Владимира Мадюшкина аналог программы
"QD3D STRETCH", триал версия предсталена на
http://www.cadopolis.com/autocad_addons/quick-draw-3d-stretch.shtml

При тестировании программы на AutoCAD 2004-06, 2008-09 без замечаний,
на 2007-ом пока имеется проблема когда плоскость растяжения/сжатия
попадает на отверстие в 3D теле.

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

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

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

(defun C:Stretch3D_Den (/ *error* cecolor layer delobj osmode modemacro
			aa1 aa2 aa3 aa4 aa5 aa6 aa7 aa8 aa9 aa10 aa11
			aa12 aa13)

(setq aa13 1	; 0- Только 3D тела, 1- С плоскими через "Stretch" (с 2006-го AutoCAD)
      cecolor (getvar "CECOLOR")
      delobj (getvar "DELOBJ")
      modemacro (getvar "MODEMACRO")
      osmode (getvar "OSMODE")
      layer (cdr (assoc 70 (tblsearch "Layer" (getvar "CLAYER"))))
      aa1 (getvar "VIEWDIR")
      aa10 (ssadd))

(if (< (atof (getvar "ACADVER")) 16.2)(setq aa13 0))

(if (and (equal (car aa1) 0 0.00001)
	 (equal (cadr aa1) 0 0.00001)
	 (> (caddr aa1) 0))(progn

(if (= aa13 0)
(if (setq aa1 (ssget "_i" '((0 . "3DSOLID"))))
(princ (strcat "\nВыбрано объектов: " (itoa (sslength aa1))))(progn
(princ "\nВыбор 3D тел для преоразования")
(setq aa1 (ssget '((0 . "3DSOLID"))))
))
(if (setq aa1 (ssget "_i" ))
(princ (strcat "\nВыбрано объектов-: " (itoa (sslength aa1))))
(setq aa1 (ssget ))
)
)

(if aa1
(if (setq aa2 (getpoint "\nПервая точка плоскости растяжения/сжатия:"))
(if (setq aa3 (getpoint aa2 "\nВторая точка плоскости (плоскость перпендикулярна XY):"))(progn

(setq aa8 (trans aa2 1 0)
      aa13 (ssget "_P" '((-4 . "<NOT")(0 . "3DSOLID")(-4 . "NOT>"))))

(grdraw aa2 aa3 7)

(vl-load-com)
(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
(setvar "CMDECHO" 0)

(defun *error* (msg)
(setvar "CECOLOR" cecolor)
(setvar "MODEMACRO" modemacro)
(setvar "DELOBJ" delobj)
(setvar "OSMODE" osmode)
(setvar "CMDECHO" 1)
(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
(if (and (>= (atof (getvar "ACADVER")) 16.2)(< (atof (getvar "ACADVER")) 17.1))
(vla-sendcommand (vla-get-activedocument
(vlax-get-acad-object)) "_.undo 1 ")
(command nil nil nil nil "_.undo" 1))
(princ "\nВыход во время обработки данных\n")
)

(command "_.undo" "_m"
	 "_.ucs" "_z" aa2 aa3)

(setvar "ORTHOMODE" 1)
(setvar "UCSICON" 0)

(initget 1)
(if (vl-catch-all-error-p
(setq aa4 (vl-catch-all-apply 'getpoint
(list "\nПервая точка вектора, определяющая сторону растяжения/сжатия:"))))
(setq aa4 nil)(progn
(initget 1)
(if (vl-catch-all-error-p
(setq aa5 (vl-catch-all-apply 'getpoint
(list aa4 "\nВторая точка вектора, определяющая растяжение или сжатие и их величину:"))))
(setq aa4 nil)
)))

(redraw)

(if aa4 (progn

(repeat (setq aa7 (sslength aa1))
(setq aa7 (1- aa7)
      aa6 (ssname aa1 aa7))
(if (/= (cdr (assoc 0 (entget aa6))) "3DSOLID")
(setq aa1 (ssdel aa6 aa1))
))

(setq aa7 (sslength aa1)
      aa8 (trans aa8 0 1)
      aa9 (sin (angle aa8 aa4)))

(if (equal (sin (* 2.0 (angle aa2 aa3))) 0 0.00001)
(while (> aa7 0)

(setq aa7 (1- aa7)
      aa6 (ssname aa1 aa7))

(vla-GetBoundingBox (vlax-ename->vla-object aa6) 'aa11 'aa12)

(setq aa11 (vlax-safearray->list aa11)
      aa12 (vlax-safearray->list aa12)
      aa11 (trans aa11 0 1)
      aa12 (trans aa12 0 1)
      aa11 (sin (angle aa8 aa11))
      aa12 (sin (angle aa8 aa12)))

(if (equal (* aa11 aa12) 0 0.00001)
(if (> (* aa9 (/ (+ aa12 aa11) 2)) 0)
(setq aa1 (ssdel aa6 aa1)
      aa10 (ssadd aa6 aa10)))  
(if (> (* aa11 aa12) 0.00001)(progn
(setq aa1 (ssdel aa6 aa1))
(if (> (* aa9 aa12) -0.00001)
(setq aa10 (ssadd aa6 aa10))
))))
))

(setq aa7 (trans (mapcar '+ aa4 '(0 0)) 1 0)
      aa5 (trans (mapcar '+ aa5 '(0 0)) 1 0)
      aa4 (distance aa7 aa5))
))

(command "_.undo" "_b")

(if aa4 (progn

(setq aa7 (trans aa7 0 1)
      aa5 (trans aa5 0 1))

(if (> (sin (angle aa2 aa3)) 0)
(setq aa6 aa2 aa2 aa3 aa3 aa6))

(if (> (sin (- (angle aa2 aa3)(angle aa2 aa7))) 0)
(setq aa6 aa2 aa2 aa3 aa3 aa6))

(if (> (distance aa2 aa7)(distance aa2 aa5))
(setq aa4 (- aa4)))

(setq aa9 (polar '(0 0 0) (+ (angle aa2 aa3)(/ pi 2)) aa4)
      aa5 (sslength aa1))

(setvar "OSMODE" 0)
(setvar "DELOBJ" 1)
(if (eq layer 4)(command "_.layer" "_u" (getvar "CLAYER") ""))

(if aa13 (if (> (sslength aa13) 0)
(command "_.stretch" aa13 "" aa3 (mapcar '+ aa3 aa9))))

(if (> (sslength aa10) 0)
(command "_.move" aa10 "" '(0 0 0) aa9))

(while (> aa5 0)

(setq aa5 (1- aa5)
      aa6 (ssname aa1 aa5)
      aa7 (entlast)
      aa8 (entget aa6))

(while (entnext aa7)
(setq aa7 (entnext aa7)))

(if (/= (cdr (assoc 70 (tblsearch "Layer" (cdr (assoc 8 aa8))))) 4)(progn

(if (and (>= (atof (getvar "ACADVER")) 16)(assoc 420 aa8))
(setq aa8 (cdr (assoc 420 aa8))
      aa8 (strcat "RGB:" (itoa (logand (lsh aa8 -16) 255)) ","
      (itoa (logand (lsh aa8 -8) 255)) ","
      (itoa (logand aa8 255))))
(if (setq aa8 (assoc 62 aa8))
(setq aa8 (itoa (cdr aa8)))
(setq aa8 "256")))

(setvar "CECOLOR" aa8)))

(if (> aa4 0)(progn
(command "_.section" aa6 "" "3" aa2 aa3 "@0,0,1")
(if (entnext aa7)(progn

(setq aa7 (entnext aa7)
      aa8 (ssadd))

(command "_.extrude" aa7 "" (- aa4))
(while (= (getvar 'cmdactive) 1)
(command ""))

(while (entnext aa7)
(setq aa7 (entnext aa7)
      aa8 (ssadd aa7 aa8)))

(command "_.slice" aa6 "" "3" aa2 aa3 "@0,0,1" "_b")
(if (entnext aa7)
(command "_.move" (entlast) "" '(0 0 0) aa9))
(command "_.union" aa6 aa8 (entlast) "")
)
(progn
(command "_.slice" aa6 "" "3" aa2 aa3 "@0,0,1" "_b")
(if (setq aa7 (entnext aa7))
(command "_.move" aa7 "" '(0 0 0) aa9
	 "_.union" aa6 aa7 "")
(if (< (sin (- (angle aa2 aa3)
         (angle aa2
(trans (vlax-safearray->list
   (vlax-variant-value
     (vla-get-Centroid
       (vlax-ename->vla-object aa6)))) 0 1)))) 0)
(command "_.move" aa6 "" '(0 0 0) aa9)
)
))
)
)
(progn
(command "_.slice" aa6 "" "3" aa2 aa3 "@0,0,1" "_b")

(if (setq aa7 (entnext aa7))(progn

(command "_.move" aa7 "" '(0 0 0) aa9
	 "_.slice" aa7 "" "3" aa2 aa3 "@0,0,1" "_b")

(if (entnext aa7)
(command "_.erase" aa7 ""
	 "_.union" aa6 (entnext aa7) "")
(command "_.union" aa6 aa7 "")
)
)
(if (< (sin (- (angle aa2 aa3)
         (angle aa2
(trans (vlax-safearray->list
   (vlax-variant-value
     (vla-get-Centroid
       (vlax-ename->vla-object aa6)))) 0 1)))) 0)
(command "_.move" aa6 "" '(0 0 0) aa9)
)
)
))
(if (> (sslength aa10) 0)
(setvar "MODEMACRO" (strcat "Перенесено: "
			    (itoa (sslength aa10))
			    "; Изменено: "
			    (itoa (- (sslength aa1) aa5))
			    " из "
			    (itoa (sslength aa1))))
(setvar "MODEMACRO" (strcat "Обработано 3D тел: "
			    (itoa (- (sslength aa1) aa5))
			    " из "
			    (itoa (sslength aa1))))
)
)
))
(princ "\nГотово.")
(if (eq layer 4)(command "_.layer" "_lo" (getvar "CLAYER") ""))
(setvar "CECOLOR" cecolor)
(setvar "MODEMACRO" modemacro)
(setvar "DELOBJ" delobj)
(setvar "OSMODE" osmode)
(setvar "CMDECHO" 1)
(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
))))
)
(princ "\nУстановите один из стандартных ортогональных видов")
)
(princ)
)
__________________
Kiev, Ukraine
sasha_lif вне форума  
 
Автор темы   Непрочитано 17.06.2013, 16:04
#3
igordrob


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


Да это то что надо. Нашел еще вариант с динамическими блоками
Спасибо за помощь !!!!
igordrob вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Помогите пожалуйста, как редактировать такой мебельный фасад

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста рассчитать стальную петлю на изгиб borisovev11 Конструкции зданий и сооружений 55 29.11.2011 16:19
Помогите пожалуйста с отоплением Mishan13 Отопление 3 27.10.2011 12:29
Помогите пожалуйста найти поперечник вагона с углём МишаИнженер Поиск литературы, чертежей, моделей и прочих материалов 16 05.08.2011 18:54
Однострочный текст какой-то не такой. Помогите пожалуйста! Паша П.М. AutoCAD 16 20.10.2006 15:10