明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1095|回复: 12

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

[复制链接]
发表于 2019-12-10 10:14 | 显示全部楼层 |阅读模式
(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 nil  cenlist  nil 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来修改圆直径是否可以?
把选择到的圆原始直径取出,在边上对应一个编辑框输入修改?
如数据为空则表示不修改,保留原始数据,谢谢

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-12-10 14:13 | 显示全部楼层
本帖最后由 xyp1964 于 2019-12-10 14:14 编辑

;; 这个功能用对话框有点多余
  1. (defun c:te ()
  2.   (setq dd (Udist 7 "" "新直径<输入或鼠标直接量取>" dd nil))
  3.   (if (and (setq s1 (car (entsel "\n请选择指定图层的圆进行修改直径: ")))
  4.            (setq la (cdr (assoc 8 (entget s1))))
  5.            (setq ss (ssget "x" (list '(0 . "CIRCLE") (cons 8 la))))
  6.       )
  7.     (xyp-SubUpd ss 40 (* dd 0.5))
  8.   )
  9.   (princ)
  10. )
 楼主| 发表于 2019-12-11 09:15 | 显示全部楼层

                                                         
















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

你好
  按你所觉得合适的面板即可,感谢
 楼主| 发表于 2019-12-10 14:51 | 显示全部楼层
xyp1964 发表于 2019-12-10 14:13
;; 这个功能用对话框有点多余

多种圆的时候,在命令行修改容易眼花
发表于 2019-12-12 09:22 | 显示全部楼层
:D你在晓东也发了相同的帖子哇
发表于 2019-12-12 12:47 | 显示全部楼层
权限不够,回不了你私发的信息。
可以的,再多都可以,只是对你想要的dcl面板类型有所限制。
发表于 2019-12-12 13:33 | 显示全部楼层
本帖最后由 sharetow 于 2019-12-12 13:35 编辑
linheyuanpcb 发表于 2019-12-12 13:16
你好
  按你所觉得合适的面板即可,感谢

上附件........圆比较多的情况
 楼主| 发表于 2019-12-12 13:50 | 显示全部楼层
sharetow 你好 请查看附件,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2019-12-13 10:46 | 显示全部楼层
linheyuanpcb 发表于 2019-12-12 13:50
sharetow 你好 请查看附件,谢谢

我感觉只能做这种面板了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 15:46 , Processed in 0.274138 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表