找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: Lispboy

[实体] 面域合并

 火.. [复制链接]
发表于 2021-8-6 10:17:02 | 显示全部楼层
厉害啊 就是不知道怎么加载
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 756个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 80个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 100个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 244个

财富等级: 日进斗金

发表于 2022-5-9 14:03:05 | 显示全部楼层
我一次遇到   REGION ** 在当前版本中此命令被禁止执行。**
就在前辈代码的基础上改进了下

;|
Region 对象之间的布尔运算 (并集、交集、差集)
acUnion : 执行并集运算
acIntersection : 执行交集运算
acSubtraction:  执行差集运算
|;
(princ "\n创建面域:Mreg")
(princ "\n差集命令:Sreg")
(princ "\n并集命令:Ureg")
(princ "\n交集命令:Ireg")
(princ "\n")


;构造面域
(defun c:mreg ( / *Obj *Doc *MSp plss pli dei plcount objs ent object curves regobjs )
  (vl-load-com)
  (if (and
        (princ "\n选择闭合的曲线: ")
        (setq plss (ssget '((0 . "LWPOLYLINE,CIRCLE,SPLINE,ELLIPSE"))))
      );end and
      (progn
        (setq  *Obj (vlax-get-acad-object)
               *Doc (vla-get-activeDocument *Obj)
               *MSp (vla-get-Modelspace *Doc)
        )
        (setq  pli  0
               dei  0
               plcount  (sslength plss)
               objs  nil
        )
        (repeat plcount
          (setq ent (ssname plss pli))
          (setq object (vlax-ename->vla-object ent))
          (if  (vlax-curve-isClosed object)
               (setq objs (cons object objs))
          );end if
          (setq pli (1+ pli))
        )
        (setq  curves (vlax-make-safearray
                        vlax-vbobject
                        (eval '(cons 0 (1- plcount)))
                      )
        )
        (vlax-safearray-fill curves objs)
        (setq regobjs (vla-addregion *Msp curves))
        (repeat plcount
          (setq obj (nth dei objs))
          (vla-delete obj)
          (setq dei (1+ dei))
        )
        (setq regobjs (vlax-safearray->list (vlax-variant-value regobjs)))
        (setq regobjs
          (vl-sort
            regobjs
            '(lambda (s1 s2) (> (vla-get-area s1) (vla-get-area s2)))
          );end vl-sort
        )
        (princ)
      );end progn
  );end if
)


;;面域差集
(defun c:sreg ( / dreg_boj xreg_boj )
  (vl-load-com)
  (if (and
         (princ "\n请选择被减面域:")
         (setq dreg_boj (ssget ":S" '((0 . "REGION"))));大面积
         (princ "\n请选择减去的面域:")
         (setq xreg_boj (ssget  '((0 . "REGION"))));小面积
         (setq dreg_boj (vlax-ename->vla-object (ssname dreg_boj 0)));
         (setq xreg_obj (mapcar 'vlax-ename->vla-object (ss->enamelst xreg_boj)))
         (> (vla-get-area dreg_boj) (apply '+ (mapcar 'vla-get-area xreg_obj)));面积大小合理
      );end and
      (progn
        (foreach n xreg_obj
          (vla-boolean dreg_boj acSubtraction n)
        )
        (princ "\n完成差集运算!")
      );end progn
      (princ "\n未完成差集运算!")
  );end if
)

;面域并集
(defun c:ureg ( / dreg_boj xreg_boj )
  (vl-load-com)
  (if (and
         (princ "\n请选择并集面域:")
         (setq xreg_boj (ssget  '((0 . "REGION"))));
         (setq xreg_obj (mapcar 'vlax-ename->vla-object (ss->enamelst xreg_boj)))
         (setq dreg_boj (car xreg_obj))
         (setq xreg_obj (cdr xreg_obj))
      );end and
      (progn
        (foreach n xreg_obj
          (vla-boolean dreg_boj acUnion n)
        )
        (princ "\n完成并集运算!")
      );end progn
      (princ "\n未完成并集运算!")
  );end if
)

;面域交集
(defun c:Ireg ( / dreg_boj xreg_boj )
  (vl-load-com)
  (if (and
         (princ "\n请选择交集面域:")
         (setq xreg_boj (ssget  '((0 . "REGION"))));
         (setq xreg_obj (mapcar 'vlax-ename->vla-object (ss->enamelst xreg_boj)))
         (setq dreg_boj (car xreg_obj))
         (setq xreg_obj (cdr xreg_obj))
      );end and
      (progn
        (foreach n xreg_obj
          (vla-boolean dreg_boj acIntersection n)
        )
        (princ "\n完成交集运算!")
      );end progn
      (princ "\n未完成交集运算!")
  );end if
)



;;函数名称:        ss->enamelst
;;调用格式:        (ss->enamelst ss)
;;参数说明:        ss是非空选择集
;;返回值:        图元名表
;;函数简介:        将选择集转为表以方便用mapcar操作
(defun ss->enamelst (ss)
    (vl-load-com)
    (vl-remove-if-not
      '(lambda (x) (equal (type x) 'ename))
      (mapcar 'cadr (ssnamex ss))
    )
);;;end defun

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 66个

财富等级: 招财进宝

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 10个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 01:36 , Processed in 0.187958 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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