MR MAN 发表于 2022-7-6 12:10:13

相交线

我有两条线在交点相交,有没有办法在交点处把它们分解成4部分。

MSasu 发表于 2022-7-6 12:27:39

手动还是自动?
对于第一种情况,使用带“第一点”选项的BREAK命令,然后选择交点两次–对两条线执行相同的操作。完成!

MR MAN 发表于 2022-7-6 12:32:03

谢谢msasu的帮助,但如果我需要选择一些相交线并自动执行此操作,我该如何操作?

Tiger 发表于 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

MSasu 发表于 2022-7-6 12:52:48

将需要具有上述结构的AutoLISP例程
1、选择要处理的行(过滤错误)。
2.列出这些线的端点。
3、使用INTERS语句获取交点;如果直线不相交或点不在(两条)直线上,则退出。
4.以编程方式调用BREAK命令来分割实体。

David Bethel 发表于 2022-7-6 13:03:03

这将适用于直线,而不是柱脚或圆弧
 
(defun c:bil (/ ss l1 l1d l2 l2d p10 p11 p20 p21 ip)
(while (or (not ss)
            (/= (sslength ss) 2))
      (princ "\nSelect 2 LINEs that Intersect")
      (setq ss (ssget (list (cons 0 "LINE")
                              (if (getvar "CTAB")
                                  (cons 410 (getvar "CTAB"))
                                  (cons 67 (- 1 (getvar "TILEMODE"))))))))

(setq l1 (ssname ss 0) l1d (entget l1)
       l2 (ssname ss 1) l2d (entget l2)
       p10 (cdr (assoc 10 l1d)) p11 (cdr (assoc 11 l1d))
       p20 (cdr (assoc 10 l2d)) p21 (cdr (assoc 11 l2d))
       ip (inters p10 p11 p20 p21))

(cond ((not ip)
      (alert "Lines Do Not Intersect"))
       (T
      (command "_.BREAK" l1 ip ip
               "_.BREAK" l2 ip ip)))
(prin1))
 
 
-大卫

Lee Mac 发表于 2022-7-6 13:11:39

另一个
 

(defun c:brk (/ ss i y Obj1 Obj2 Ent1 Ent2 iLst ip)
(vl-load-com)

(if (setq ss (ssget "_:L" '((0 . "~VIEWPORT"))))
   (progn
   
   (setq i (sslength ss))
   (while (not (minusp (setq y (1- i) i (1- i))))
       (setq Obj1 (vlax-ename->vla-object (setq Ent1 (ssname ss i))))

       (while (not (minusp (setq y (1- y))))
         (setq Obj2 (vlax-ename->vla-object (setq Ent2 (ssname ss y))))

         (if (setq iLst (vlax-invoke Obj1 'IntersectWith Obj2 acExtendNone))
         (command "_.break" Ent1 "_non" (setq ip (list (car iLst) (cadr iLst) (caddr iLst)))
                     ip "_.break" (list Ent2 ip) "_non" ip ip))))))

(princ))
   
页: [1]
查看完整版本: 相交线