guosheyang 发表于 2022-9-20 12:11:38

提取实线要素(带宽度的solid线)的轮廓

本帖最后由 guosheyang 于 2022-9-23 12:37 编辑

实线(具有宽度)要素的轮廓提取,很多朋友不从下手,这里提供一种方法,建议高版本使用,如有优化意见或建议请跟帖提出,谢谢!
原问题帖在此    http://bbs.mjtd.com/thread-186265-1-1.html   
;自定义函数ygs_solid2pl 作者:ygs-羊羊羊
;功能:提取实线要素的轮廓               
;参数:ss实线选择集                     
;返回值:无                           
;执行 (ygs_solid2pl(setq ss(ssget)))   

(defun ygs_solid2pl(ss)
(setvar "cmdecho" 0)
(command "region" ss ""
          "erase"ss ""
          "union" (ssget"A"'((0 . "REGION")) ) ""
          "qaflags" 1 ".explode"(ENTLAST)""".explode"(ssget"A"'((0 . "REGION")))"""qaflags"0)
(initcommandversion 2)
(command"_.join"(ssget"A"'((0 . "LINE")))"")
)

664571221 发表于 2022-9-20 13:40:14

大神是否可以搞成可以运行的

guosheyang 发表于 2022-9-20 13:50:54

没看到执行两字?那句就是

mituzhe 发表于 2022-9-20 15:17:46

厉害。union命令是我没想到的

mituzhe 发表于 2022-9-20 15:24:08

请教楼主,qaflags是什么命令?initcommandversion 是什么作用?

guosheyang 发表于 2022-9-20 18:04:30

qaflags 是保证多个对象能炸开   nitcommandversion是保证 能用join命令

gaics 发表于 2022-9-21 13:25:44

guosheyang 发表于 2022-9-20 18:04
qaflags 是保证多个对象能炸开   nitcommandversion是保证 能用join命令

(initcommandversion 2)受教了!!

xyp1964 发表于 2022-9-22 13:06:37

;; Solid2Pl solid实体转pl线 (Solid2Pl s1)
;; (Solid2Pl (setq s1(car(entsel"\n选择: "))))
(defun Solid2Pl        (s1 / ptn)
(defun xyp-dxf (code e) (cdr (assoc code (entget e))))
(setq ptn (mapcar '(lambda (x) (xyp-DXF x s1)) '(10 11 13 12)))
(command "pline")
(foreach pt ptn (command pt))
(command "c")
(entlast)
)

guosheyang 发表于 2022-9-22 19:36:55

xyp1964 发表于 2022-9-22 13:06
;; Solid2Pl solid实体转pl线 (Solid2Pl s1)
;; (Solid2Pl (setq s1(car(entsel"\n选择: "))))
(defun So ...

院长没有用面域哈,好方法    提取线以后合并轮廓   不用面域的话还挺麻烦的

664571221 发表于 2022-9-24 16:37:33

xyp1964 发表于 2022-9-22 13:06
;; Solid2Pl solid实体转pl线 (Solid2Pl s1)
;; (Solid2Pl (setq s1(car(entsel"\n选择: "))))
(defun So ...

派大牛逼啊
页: [1]
查看完整版本: 提取实线要素(带宽度的solid线)的轮廓