拉伸怎样不牵动其它重叠图元?
[*]
[*](defun c:tt (/ EN LST SEL)
[*](setq sel (entsel "\n选择矩形:")
[*] en(entget (car sel))
[*])
[*]
[*](setq Lst (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) en))
[*]
[*] P1 (nth 0 Lst)
[*] P2 (nth 1 Lst)
[*] P3 (nth 2 Lst)
[*] P4 (nth 3 Lst)
[*]
[*]
[*])
[*](COMMAND "STRETCH""C" p2 p3 "" '(0 0) (polar '(0 0) (* pi 0.5) 100))
[*];由于p1和p2框选位置有其它图元的点重叠,会牵动其它图元,怎样修改才能只对当前对象起作用?
[*];能否加边长比较如:如果a边(p1 p2)> b边(p2 p3),b边(p2 p3)向外部拉伸100,b边的对称边(p1 p4)向外部伸100
[*];相当于:600*200矩形,变成(左100+600+右100)*200=800*200
[*]
[*]
[*])
本帖最后由 hhh454 于 2022-8-15 00:42 编辑
(defun c:tt (/ EN LST SEL)
(setq sel (entsel "\n选择矩形:")
en(entget (car sel))
)
(备份选定对象的图层)
(创建一个新图层)
(选定对象变为新图层)
(setq Lst (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) en))
P1 (nth 0 Lst)
P2 (nth 1 Lst)
P3 (nth 2 Lst)
P4 (nth 3 Lst)
)
(独显创建的新图层)
(COMMAND "STRETCH""C" p2 p3 "" '(0 0) (polar '(0 0) (* pi 0.5) 100))
(图层全显示)
(恢复选择对象为原来的图层)
)
;两点矩形
(defun c:RCC (/ EN)
(setq p1 (getpoint "第一点:"));鼠标得到第1点
(setq p2 (getpoint "第二点:"));鼠标得到第2点
;(setq p11 (polar p1 (/ pi 2) 20))上20,
;(setq p11 (polar p1 (/ pi -2) 20))下20,
;(setq p11 (polar p1 (/ pi 1) 20))左20,
;(setq p11 (polar p1 0 20))右20,
;(setq p11 (polar (polar p1 (/ pi -2) 20) (/ pi 1) 20) ) ;下20&左20
;(setq p11 (polar (polar p1 (/ pi -2) 20) 0 20) ) ;下20&右20
(setq p11 (polar (polar p1 (/ pi -2) 5) 0 20) );偏移点位1
(setq p22 (polar (polar p2 (/ pi 2) 5) 0 29) );偏移点位2
(command "rectangle""non" P11"non" P22 ) ;偏移点对角画矩形
;不能写成(command "rectangle" P11 P3 ),这样时灵时不灵
)
页:
[1]