ch34 发表于 2022-8-14 21:26:36

拉伸怎样不牵动其它重叠图元?


[*]

[*](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:39:39

本帖最后由 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))
(图层全显示)
(恢复选择对象为原来的图层)
)

ch34 发表于 2022-8-16 21:37:16


;两点矩形
(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]
查看完整版本: 拉伸怎样不牵动其它重叠图元?