乐筑天下

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

[编程交流] 相交线

[复制链接]

35

主题

93

帖子

60

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
194
发表于 2022-7-6 12:10:13 | 显示全部楼层 |阅读模式
我有两条线在交点相交,有没有办法在交点处把它们分解成4部分。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 12:27:39 | 显示全部楼层
手动还是自动?
对于第一种情况,使用带“第一点”选项的BREAK命令,然后选择交点两次–对两条线执行相同的操作。完成!
回复

使用道具 举报

35

主题

93

帖子

60

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
194
发表于 2022-7-6 12:32:03 | 显示全部楼层
谢谢msasu的帮助,但如果我需要选择一些相交线并自动执行此操作,我该如何操作?
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 12:45:42 | 显示全部楼层
有几个Lisp可以扩展Break命令-这个线程突出显示了一个可能对您有用的Lisp:
 
http://www.cadtutor.net/forum/showthread.php?t=23653&highlight=BREAK+Lisp程序
 
有关如何使用Lisps的帮助,请参阅以下说明:
 
http://www.cadtutor.net/forum/showthread.php?t=1390
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 12:52:48 | 显示全部楼层
将需要具有上述结构的AutoLISP例程
1、选择要处理的行(过滤错误)。
2.列出这些线的端点。
3、使用INTERS语句获取交点;如果直线不相交或点不在(两条)直线上,则退出。
4.以编程方式调用BREAK命令来分割实体。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 13:03:03 | 显示全部楼层
这将适用于直线,而不是柱脚或圆弧
 
  1. [b][color=BLACK]([/color][/b]defun c:bil [b][color=FUCHSIA]([/color][/b]/ ss l1 l1d l2 l2d p10 p11 p20 p21 ip[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]or [b][color=MAROON]([/color][/b]not ss[b][color=MAROON])[/color][/b]
  3.             [b][color=MAROON]([/color][/b]/= [b][color=GREEN]([/color][/b]sslength ss[b][color=GREEN])[/color][/b] 2[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  4.         [b][color=NAVY]([/color][/b]princ [color=#2f4f4f]"\nSelect 2 LINEs that Intersect"[/color][b][color=NAVY])[/color][/b]
  5.         [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"LINE"[/color][b][color=BLUE])[/color][/b]
  6.                               [b][color=BLUE]([/color][/b]if [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"CTAB"[/color][b][color=RED])[/color][/b]
  7.                                   [b][color=RED]([/color][/b]cons 410 [b][color=PURPLE]([/color][/b]getvar [color=#2f4f4f]"CTAB"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  8.                                   [b][color=RED]([/color][/b]cons 67 [b][color=PURPLE]([/color][/b]- 1 [b][color=TEAL]([/color][/b]getvar [color=#2f4f4f]"TILEMODE"[/color][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  9. [b][color=FUCHSIA]([/color][/b]setq l1 [b][color=NAVY]([/color][/b]ssname ss 0[b][color=NAVY])[/color][/b] l1d [b][color=NAVY]([/color][/b]entget l1[b][color=NAVY])[/color][/b]
  10.        l2 [b][color=NAVY]([/color][/b]ssname ss 1[b][color=NAVY])[/color][/b] l2d [b][color=NAVY]([/color][/b]entget l2[b][color=NAVY])[/color][/b]
  11.        p10 [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 10 l1d[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] p11 [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 11 l1d[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  12.        p20 [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 10 l2d[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] p21 [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 11 l2d[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  13.        ip [b][color=NAVY]([/color][/b]inters p10 p11 p20 p21[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  14. [b][color=FUCHSIA]([/color][/b]cond [b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]not ip[b][color=MAROON])[/color][/b]
  15.         [b][color=MAROON]([/color][/b]alert [color=#2f4f4f]"Lines Do Not Intersect"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  16.        [b][color=NAVY]([/color][/b]T
  17.         [b][color=MAROON]([/color][/b]command [color=#2f4f4f]"_.BREAK"[/color] l1 ip ip
  18.                  [color=#2f4f4f]"_.BREAK"[/color] l2 ip ip[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  19. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
-大卫
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:11:39 | 显示全部楼层
另一个
 
  1. (defun c:brk (/ ss i y Obj1 Obj2 Ent1 Ent2 iLst ip)
  2. (vl-load-com)
  3. (if (setq ss (ssget "_:L" '((0 . "~VIEWPORT"))))
  4.    (progn
  5.      
  6.      (setq i (sslength ss))
  7.      (while (not (minusp (setq y (1- i) i (1- i))))
  8.        (setq Obj1 (vlax-ename->vla-object (setq Ent1 (ssname ss i))))
  9.        (while (not (minusp (setq y (1- y))))
  10.          (setq Obj2 (vlax-ename->vla-object (setq Ent2 (ssname ss y))))
  11.          (if (setq iLst (vlax-invoke Obj1 'IntersectWith Obj2 acExtendNone))
  12.            (command "_.break" Ent1 "_non" (setq ip (list (car iLst) (cadr iLst) (caddr iLst)))
  13.                      ip "_.break" (list Ent2 ip) "_non" ip ip))))))
  14. (princ))
  15.    
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 07:12 , Processed in 0.389164 second(s), 66 queries .

© 2020-2025 乐筑天下

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