已改好一个dcl,求把圆形桩全部用块替换的程序
以上是修改的DCL窗口,以及未修改的lsp原来程序,
希望达到的要求是图片中所示
把所有的circle圆形的桩用系统已有的块替换
;; 伪源码需要e派工具箱(XCAD)的支持(defun c:tt (/ ilst ll1 ll2)
(cmdla0)
(defun main-pro (/ ss i s1 pt)
(defun aaa (pt wide c-mode / ww)
(setq ww (* wide 0.5))
(if c-mode
(xyp-circle pt ww)
(xyp-rectang
(xyp-Pt2XY pt (- ww) (- ww))
(xyp-Pt2XY pt ww ww)
)
)
)
(princ "\n选择圆形或方形桩: ")
(setq ss (ssget '((0 . "circle,*polyline"))))
(setq i -1)
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq pt (xyp-9pt s1 5))
(cond ((= po1 "0") (aaa pt 500 t))
((= po1 "1") (aaa pt 600 t))
((= po1 "2") (aaa pt 700 t))
((= po1 "3") (aaa pt 800 t))
((= po1 "4") (aaa pt 400 nil))
((= po1 "5") (aaa pt 500 nil))
((= po1 "6") (aaa pt 600 nil))
((= po1 "7") (aaa pt 700 nil))
((= po1 "8") (aaa pt 800 nil))
)
)
(xyp-erase ss)
)
(xyp-initSet '(po1) '("0"))
(setq lst1 '("500圆桩" "600圆桩" "700圆桩" "800圆桩" "400方桩" "500方桩" "600方桩" "700方桩" "800方桩")
ilst '(("po1" "类型" "list" "lst1" "12" "12"))
)
(if (= (xyp-Dcl-Init Ilst "【桩替换】" t) 1)
(main-pro)
)
(cmdla1)
) 果断顶起..... 这个要是能实现,布桩真的很方便
希望高手出手 本帖最后由 NetBee 于 2012-12-10 09:39 编辑
实现上来讲是不难的,关键是通用
我的工具箱主要针对设计提供的图纸,进行转换后方便检查重叠,编号,提取坐标。
http://nbtools.5d6d.net/thread-139-1-1.html
给个思路:1、根据条件使用ssget获取选择集
2、循环提取圆心坐标
3、根据圆心坐标创建块
希望高手出手 希望高手出手 帮老大顶……。希望高手出手…… http://bbs.mjtd.com/forum.php?mod=viewthread&tid=93936 再顶顶再顶顶再顶顶
页:
[1]
2