多段线合并命令优化
本帖最后由 langke52 于 2017-12-13 22:14 编辑;#ddx:03#;多段线合并 ﹟
;选一个线段合并与之相连的全部线段,选多个则合并选择内线段。
(DEFUN C:MPE () ;多段线合并
(SETQ co_old (GETVAR 'cmdecho))
(SETQ pt_old (GETVAR 'PEDITACCEPT))
(SETVAR 'cmdecho 0)
(SETVAR 'PEDITACCEPT 1) ;转化为多段线
(OR (SETQ ss (SSGET "I" '((0 . "*LINE,ARC"))))
(SETQ ss (SSGET '((0 . "*LINE,ARC"))))
) ;
(SSSETFIRST nil)
(IF ss
(PROGN
(IF (= (SSLENGTH ss) 1)
(SETQ ss (SSGET "A" '((0 . "*LINE,ARC"))))
) ;_ 结束IF
(COMMAND "pedit" "m" ss "" "j" 0 "")
) ;_ 结束PROGN
(PRINC "\n***未选择对象***")
) ;_ 结束IF
(SETVAR'cmdecho co_old)
(SETVAR'PEDITACCEPT pt_old)
(PRIN1)
) ;_ 结束DEFUN
langke52 发表于 2017-12-14 13:40
(COMMAND "pedit" "m" ss "" "j" 0 "")
pedit 命令里有个模糊距离,我这边输入0 ,就是要交点在同一点才 ...
这个模糊值可以改成输入命令后自己设置吗?可以根据不同的需要随意设置模糊值这样就完美了 htlaser 发表于 2017-12-14 12:57
测试了下烂图还是不能组合 构思:先把图缩小1000倍 组合再把图放大1000倍 不知道程序怎么写!
(COMMAND "pedit" "m" ss "" "j" 0 "")
pedit 命令里有个模糊距离,我这边输入0 ,就是要交点在同一点才能合并,如果两线段有间隙的话,可以把0改成合并控制范围 感谢分享,(SETVAR 'PEDITACCEPT 1) ;转化为多段线总算,知道'PEDITACCEPT的功能. 对于烂图来说 也不能很合并 测试了下烂图还是不能组合 构思:先把图缩小1000倍 组合再把图放大1000倍 不知道程序怎么写! 好的谢谢 我再测试下 加了模糊值 一样不行:'(:'( 谢谢楼主分享 htlaser 发表于 2017-12-14 19:08
加了模糊值 一样不行
(COMMAND "pedit" "m" ss "" "j" "J" "b" 0.01 "")可以合并你这种线跟圆弧连接的。就是把连接类型改为 添加默认类型 是 延长的 。 谢谢版主