找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 922|回复: 5

[求助] 两条多段线的合并

[复制链接]

已领礼包: 10个

财富等级: 恭喜发财

发表于 2018-11-28 09:25:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
搜狗截图20181128092416.png

如上图,有什么思路或者代码,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-11-28 09:33:55 | 显示全部楼层
思路,转面域,面域求并,炸开面域,JOIN成多段线
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-11-28 11:28:22 | 显示全部楼层
本帖最后由 marting 于 2018-11-28 11:31 编辑

试试
  1. (defun c:PLUNION (/ *error* i lst ms r1 reg ss sysvar prop)
  2.   (or acDoc
  3.       (setq acDoc (vla-get-activedocument (vlax-get-acad-object)))
  4.   )
  5.   (setq        ms (vlax-get acDoc
  6.                      (if (= 1 (getvar 'cvport))
  7.                        'paperspace
  8.                        'modelspace
  9.                      )
  10.            )
  11.   )
  12.   (vla-startundomark acDoc)
  13.   (setq sysvar (mapcar 'getvar '(peditaccept draworderctl cmdecho)))

  14.   (defun *error* (msg)
  15.     (and
  16.       msg
  17.       (not (wcmatch (strcase msg) "*CANCEL*,*QUIT*,*EXIT*"))
  18.       (princ (strcat "\nError: " msg))
  19.     )
  20.     (mapcar 'setvar '(peditaccept draworderctl cmdecho) sysvar)
  21.     (vla-endundomark acDoc)
  22.     (princ)
  23.   )

  24.   (if
  25.     (setq ss (ssget ":L" '((0 . "LWPOLYLINE") (-4 . ">") (90 . 2))))
  26.      (progn
  27.        (repeat (setq i (sslength ss))
  28.          (setq lst
  29.                 (cons (vlax-ename->vla-object (ssname ss (setq i (1- i))))
  30.                       lst
  31.                 )
  32.          )
  33.        )
  34.        (foreach x lst (vla-put-closed x :vlax-true))
  35.        (setq prop (mapcar '(lambda (p) (vlax-get (car lst) p))
  36.                           '(Layer LineType Color)
  37.                   )
  38.        )
  39.        (setq reg (vlax-invoke ms 'AddRegion lst))
  40.        (foreach x lst (vla-delete x))
  41.        (setq r1 (car reg))
  42.        (foreach x (cdr reg) (vlax-invoke r1 'boolean acunion x))
  43.        (mapcar '(lambda (p v) (vlax-put r1 p v))
  44.                '(Layer LineType Color)
  45.                prop
  46.        )
  47.        (setq lst (apply
  48.                    'append
  49.                    (mapcar
  50.                      '(lambda (a)
  51.                         (if
  52.                           (listp a)
  53.                            (mapcar 'vlax-vla-object->ename a)
  54.                            (list (vlax-vla-object->ename a))
  55.                         )
  56.                       )
  57.                      (mapcar
  58.                        '(lambda        (e / p)
  59.                           (if (eq (vla-get-objectname e) "AcDbRegion")
  60.                             (progn
  61.                               (setq p (vlax-invoke e 'explode))
  62.                               (vla-delete e)
  63.                               p
  64.                             )
  65.                             e
  66.                           )
  67.                         )
  68.                        (vlax-invoke r1 'explode)
  69.                      )
  70.                    )
  71.                  )
  72.        )
  73.        (vla-delete r1)
  74.        (setq ss (ssadd))
  75.        (foreach x lst (ssadd x ss))
  76.        (mapcar 'setvar
  77.                '(peditaccept draworderctl cmdecho)
  78.                '(1 0 0)
  79.        )
  80.        (command "_pedit" "_m" ss "" "_j" "" "")
  81.      )
  82.   )
  83.   (*error* nil)
  84.   (princ)
  85. )


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8727个

财富等级: 富甲天下

发表于 2018-11-28 13:15:41 | 显示全部楼层
谢谢! marting 分享程序!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2018-11-29 00:03:20 | 显示全部楼层
效率很高。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 5个

财富等级: 恭喜发财

发表于 2019-1-10 13:47:10 | 显示全部楼层
论坛中好像看到过!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-24 20:16 , Processed in 0.452498 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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