linheyuanpcb 发表于 2019-12-10 10:14:30

各位好,这个可用DCL实现?不懂DCL的请教,谢谢

(defun c:te( / li et clst cenlist l2 )
(setq li (entsel "\n请选择指定图层的圆进行修改直径:"))
(progn
         (setq et (entget(nth 0 li)))
            (setq lay_name (cdr (assoc 8 et)))
         )   
(if (and(setq ss (ssget "x"(list'(0 . "CIRCLE")(cons 8 lay_name)))))
(progn
(setq i 0 clst nilcenlistnil l2 nil)
(repeat (sslength ss)
(setq en (ssname ss i)
ent (entget en)
r1 (assoc 40 ent)
cenlist (cons(cdr r1) cenlist)
i (1+ i))
(setq cenlist (vl-sort cenlist '< ));小到大排列
)
(setq l2 (cons (car cenlist)l2))
(while(setq cenlist (vl-remove(car cenlist)(cdr cenlist)))
(setq l2 (cons(car cenlist) l2))
)
(foreach e (reverse l2)
(if (not (member e clst))
(progn
(setq ss1 (ssget "x"(list'(0 . "CIRCLE")(cons 8 lay_name) (cons 40 e))))
(setq newd (getdist (strcat "\n输入新的直径-->" (rtos (* e 2) 2 3) "<--:")))
(if newd (progn
(setq j 0)
(setq e (/ newd 2))
(setq clst (cons e clst))
(repeat (sslength ss1)
(setq ent1 (entget(ssname ss1 j))
ent1 (subst (cons 40 e) (assoc 40 ent1) ent1)
j (1+ j))
(entmod ent1)
)
)
)))))
);修改结束
(princ)
)

把以上程序改为DCL来修改圆直径是否可以?
把选择到的圆原始直径取出,在边上对应一个编辑框输入修改?
如数据为空则表示不修改,保留原始数据,谢谢

xyp1964 发表于 2019-12-10 14:13:09

本帖最后由 xyp1964 于 2019-12-10 14:14 编辑

;; 这个功能用对话框有点多余
(defun c:te ()
(setq dd (Udist 7 "" "新直径<输入或鼠标直接量取>" dd nil))
(if (and (setq s1 (car (entsel "\n请选择指定图层的圆进行修改直径: ")))
         (setq la (cdr (assoc 8 (entget s1))))
         (setq ss (ssget "x" (list '(0 . "CIRCLE") (cons 8 la))))
      )
    (xyp-SubUpd ss 40 (* dd 0.5))
)
(princ)
)

linheyuanpcb 发表于 2019-12-11 09:15:35


                                                         
















linheyuanpcb 发表于 2019-12-12 13:16:15

sharetow 发表于 2019-12-12 12:47
权限不够,回不了你私发的信息。
可以的,再多都可以,只是对你想要的dcl面板类型有所限制。

你好
按你所觉得合适的面板即可,感谢

linheyuanpcb 发表于 2019-12-10 14:51:19

xyp1964 发表于 2019-12-10 14:13
;; 这个功能用对话框有点多余

多种圆的时候,在命令行修改容易眼花{:1_1:}

sharetow 发表于 2019-12-12 09:22:45

:D你在晓东也发了相同的帖子哇

sharetow 发表于 2019-12-12 12:47:18

权限不够,回不了你私发的信息。
可以的,再多都可以,只是对你想要的dcl面板类型有所限制。

sharetow 发表于 2019-12-12 13:33:25

本帖最后由 sharetow 于 2019-12-12 13:35 编辑

linheyuanpcb 发表于 2019-12-12 13:16
你好
按你所觉得合适的面板即可,感谢
上附件........圆比较多的情况

linheyuanpcb 发表于 2019-12-12 13:50:25

sharetow 你好 请查看附件,谢谢

sharetow 发表于 2019-12-13 10:46:52

linheyuanpcb 发表于 2019-12-12 13:50
sharetow 你好 请查看附件,谢谢

我感觉只能做这种面板了
页: [1] 2
查看完整版本: 各位好,这个可用DCL实现?不懂DCL的请教,谢谢