ambox 发表于 2012-12-9 23:45:56

已改好一个dcl,求把圆形桩全部用块替换的程序






以上是修改的DCL窗口,以及未修改的lsp原来程序,

希望达到的要求是图片中所示

把所有的circle圆形的桩用系统已有的块替换

xyp1964 发表于 2013-3-18 07:43:17


;; 伪源码需要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)
)

zh. 发表于 2012-12-10 00:26:11

果断顶起.....

chleiwu 发表于 2012-12-10 09:11:16

这个要是能实现,布桩真的很方便
希望高手出手

NetBee 发表于 2012-12-10 09:32:54

本帖最后由 NetBee 于 2012-12-10 09:39 编辑

实现上来讲是不难的,关键是通用
我的工具箱主要针对设计提供的图纸,进行转换后方便检查重叠,编号,提取坐标。
http://nbtools.5d6d.net/thread-139-1-1.html

给个思路:1、根据条件使用ssget获取选择集
2、循环提取圆心坐标
3、根据圆心坐标创建块







ambox 发表于 2012-12-10 13:24:40

希望高手出手

ambox 发表于 2012-12-11 09:46:02

希望高手出手

yjynma 发表于 2012-12-11 09:49:00

帮老大顶……。希望高手出手……

hao3ren 发表于 2012-12-11 10:41:01

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=93936

ambox 发表于 2013-3-17 23:02:15

再顶顶再顶顶再顶顶
页: [1] 2
查看完整版本: 已改好一个dcl,求把圆形桩全部用块替换的程序