乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 329|回复: 12

用lisp布尔多义线,合并的功能,我想了个路子,请高手指点

[复制链接]

28

主题

327

帖子

21

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
432
发表于 2011-10-12 11:34:00 | 显示全部楼层 |阅读模式
用lisp布尔多义线,合并的功能,我想了个路子,请高手指点:
下面是我弄的一个图片,

xlz3ydewfdj.jpg

xlz3ydewfdj.jpg

下面是我的思路,但是不知道怎么串起来,请高手支招,谢谢
1,使用  “region”  ,命令将图中的多义线或者矩形,变成面片
2,使用布尔命令  “union”  ,合并面片
3,炸开合并后的面片,变成单条line
4,pe命令合成多义线。
回复

使用道具 举报

22

主题

95

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
183
发表于 2011-10-14 11:30:00 | 显示全部楼层
  1. (defun c:text  (/ osmode_bak ss e getss)
  2.   (defun getss (e / ss)
  3.     (setq ss (ssadd))
  4.     (while (setq e (entnext e))
  5.       (setq ss (ssadd e ss))
  6.     )
  7.     ss
  8.   )
  9.   (setvar "CMDECHO" 0);_关闭命令提示
  10.   (Setq osmode_bak (getvar "osmode"));_记录捕捉
  11.   (Setvar "osmode" 0);_关闭捕捉
  12.   (setq ss  (ssget))
  13.   (setq e(entlast))
  14.   (command ".region" ss "")
  15.   (command ".union" (getss e) "")
  16.   (setq e(entlast))
  17.   (command ".Explode" (entlast))
  18.   (if (= 0 (getvar "peditaccept"))(setvar "peditaccept" 1))
  19.   (command "_.pedit" "m" (getss e) "" "j" "0.005" "")
  20.   (Setvar "osmode" osmode_bak);_还原捕捉
  21.   (setvar "CMDECHO" 1);_打开命令提示
  22.   (princ)
  23. )
回复

使用道具 举报

4

主题

36

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2019-12-2 01:01:00 | 显示全部楼层

好用,天正的布尔功能一样
回复

使用道具 举报

8

主题

44

帖子

13

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
68
发表于 2022-7-25 12:56:00 | 显示全部楼层
xyp-Get-Bpoly
回复

使用道具 举报

39

主题

1451

帖子

19

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1598
发表于 2011-10-12 12:19:00 | 显示全部楼层

  1. (defun c:tt  (/ en1 en2 pjdl enRegion0 enRegion1 enRegion2 ss)
  2.   (if
  3.     (and
  4.       (setq en1 (car (entsel "\n 选择第一个多段线:")))
  5.       (setq en2 (car (entsel "\n 选择第二个多段线:")))
  6.       )
  7.      (progn
  8.        (setq pjdl (vlax-invoke
  9.                     (vlax-ename->vla-object en1)
  10.                     'IntersectWith
  11.                     (vlax-ename->vla-object en2)
  12.                     acExtendNone))
  13.        (if (and pjdl (> (length pjdl) 3))
  14.          (progn
  15.            (command ".region" en1 "")
  16.            (setq enRegion1 (entlast))
  17.            (command ".region" en2 "")
  18.            (setq enRegion2 (entlast))
  19.            (command ".union" enRegion1 enRegion2 "")
  20.            (setq enenRegion0 (entlast))
  21.            (command ".Explode" enenRegion0)
  22.            (setq ss (ssget "p"))
  23.            (command "pedit" "m"  ss "" "y" "j" "" "")
  24.            )
  25.          )
  26.        )
  27.      )
  28.   )

回复

使用道具 举报

28

主题

327

帖子

21

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
432
发表于 2011-10-12 14:20:00 | 显示全部楼层
谢谢,我弄了半天,没有弄出来,选择上次的也选择不上
回复

使用道具 举报

28

主题

327

帖子

21

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
432
发表于 2011-10-12 14:52:00 | 显示全部楼层
我自己弄了一个,还不全,炸开和合并弄不了
下面是代码
  1. (defun c:tt (/ ngc_pa)
  2.   (setvar "CMDECHO" 0);_关闭命令提示
  3.   (Setq osmode_bak (getvar "osmode"));_记录捕捉
  4.   (Setvar "osmode" 0);_关闭捕捉
  5.   (setq ngc_pa(getpoint "指定一点:")
  6.         ngc_pb(getpoint "指定另一点")
  7.         )        
  8.   (command ".region" "f" ngc_pa ngc_pb "" "")
  9.   (command ".union" "f" ngc_pa ngc_pb "" "")
  10.   (炸开)  这个弄不好
  11.   (pedit) 这个也连不上
  12.   (Setvar "osmode" osmode_bak);_还原捕捉
  13.   (setvar "CMDECHO" 1);_打开命令提示
  14.   (princ)
  15.   )
回复

使用道具 举报

10

主题

34

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
74
发表于 2011-10-12 17:52:00 | 显示全部楼层
这个很给力!
回复

使用道具 举报

10

主题

34

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
74
发表于 2011-10-12 18:12:00 | 显示全部楼层
楼主 这块程序 好像没用上  (command "pedit" "m"  ss "" "y" "j" "" "")   忘指教
回复

使用道具 举报

13

主题

201

帖子

14

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
247
发表于 2011-10-12 18:13:00 | 显示全部楼层

你选择的是点,而不是图元呀!
(setq en1 (car (entsel "\n 选择第一个多段线:")))

                               
登录/注册后可看大图

      (setq en2 (car (entsel "\n 选择第二个多段线:")))
(setq ngc_pa(getpoint "指定一点:")

                               
登录/注册后可看大图

        ngc_pb(getpoint "指定另一点")      )        
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-1-31 10:31 , Processed in 0.326048 second(s), 86 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表