The Buzzard 发表于 2022-7-6 11:49:17

 
 
如果没有lisp的帮助,块本身不会断开线。该教程中显示的属性将提供坐标,以便lisp知道在哪里断开线。如果没有Lisp程序,方块就没有魔力。可能有不同的方法,但不是没有一个程序。如果你愿意学习,那么所给的教程很容易理解。如果你想要一个为你编写的程序,尽管没有保证,但其他人可能愿意为你编写。学会如何为自己做这些事情的能力是无价的。

Lee Mac 发表于 2022-7-6 11:52:52

 
你不愿意自己先试试吗?

cabltv1 发表于 2022-7-6 11:57:58

我有一些代码可以通过选择块的外边缘来打断/擦除Pline,但我更愿意跳过选择块并自动执行。
我记不起是在哪里找到代码的(可能是在这个网站上)。我试图修改代码,但没有成功。
 
代码:
 
(defun dtr(a);度到弧度
(*pi(/a 180.0)))
(defun rtd(a);弧度到度
(/(*180.0)π)
(defun find_attr1();查找选定对象的几个属性的子例程
(setq pt6(cadr lin))
(setq lim(car lin))
(setq lin1(entget lim))
(setq lin2(cdr(assoc 2 lin1)))
(setq att8(cdr(assoc 8 lin1)))
(setq lin10(cdr(assoc 10 lin1)))
(if(=nil(cdr(assoc 50 lin1)))(funky1))
(如果(/=nil(cdr(assoc 50 lin1)))(setq ang1(rtd(setq lin50(cdr(assoc 50 lin1)))))))
(defun poleped_box();子程序trimpoled用于从极点或其他wblock清除线路
(setq f1(极坐标lin10 lin50(*q\u scale id\u scale distemp)))
(setq f3(极性lin10(+lin50 pi)(*q\u scale id\u scale distemp)))
(setq p1(极轴f1(dtr(+90 ang1))(*q\u scale id\u scale distemp)))
(setq p2(极轴f1(dtr(+270 ang1))(*q\u scale id\u scale distemp)))
(setq p3(极坐标f3(dtr(+90 ang1))(*q\u scale id\u scale distemp)))
(setq p4(极坐标f3(dtr(+270 ang1))(*q\u scale id\u scale distemp)))
(defun poleped_box2();子程序trimpoled用于从极点或其他wblock清除线路
(setq distemp 5)
(poleped_盒)
(setvar“CLAYER”“0”)
(命令“layer”“f”att8“”)
(命令“pline”p1“w”“0”“0”p2 p4 p3“c”)
(setq ce(ssget“L”))
(setq distemp 4)
(poleped_盒)
(setvar“CLAYER”“0”)
(命令“layer”“f”att8“”)
(命令“trim”ce““f”p1 p2 p4 p3”)
(命令“layer”t“att8”)
(命令“ERASE”(ssname ce 0)”)
(命令“”))
 
;====以下是用于修剪电杆======
(defun trimpole();从杆塔或ped清洁线路的例行程序(注:运行两次)
(setq id_比例1)
(setq q_比例12)
(princ“\nZoom in to Pole/Ped”)
(命令“zoom”“w”pause pause“”)
(setq lin(entsel“拾取磁极外边缘/Ped”)(ERPRI)
(查找属性1)
(poleped_box2)
(命令“zoom”“p”)
(命令“-pan”)
(setq lin50(+lin50 hp))
(poleped_box2))
;====端部装饰========

The Buzzard 发表于 2022-7-6 12:01:12

教程中的代码将自动执行此操作。

cabltv1 发表于 2022-7-6 12:02:27

感谢Buzzrd的回复。
我确实尝试了Afro-Lisp代码,它运行良好,但我正在使用提供给我的块,不允许修改它们。这就是为什么我在寻找其他选择。

The Buzzard 发表于 2022-7-6 12:07:12

 
我不确定是否有其他方法可以做到这一点。可以沿块上的给定点指定坐标。我认为同样的代码仍然可以应用,但必须进行一些修改。Afralisp上描述的方法将是一种更简单的方法。等一会儿,看看会发生什么。也许其他人会生产一些你可能觉得更合适的产品。

Lee Mac 发表于 2022-7-6 12:09:55

当然还有其他方法可以实现这一点——我个人不喜欢使用AfraLISP方法——因为它涉及修改原始块。
 
但是,如果你知道块的尺寸,那么你可以轻松地创建一个LISP来为你自动打断。LISP需要包含一组命令来插入块,还需要知道在线路上的什么位置插入块。
 
LISP需要知道线的角度和块的尺寸,以便确定断点。然后,它只是使用BREAK命令的一个例子。
 
希望这能让你开始。
 

The Buzzard 发表于 2022-7-6 12:12:38

 
这是Tony Hotchkiss的Visual Lisp方法,它不需要属性。
PV符号。拉链

Lee Mac 发表于 2022-7-6 12:14:03

我认为那不是VL Buzzard
 
但是,它使用了我在上面的帖子中解释的相同想法。

The Buzzard 发表于 2022-7-6 12:17:55

 
它只使用一条VL线:
(setq pos (vl-position bnam block-list))
 
在任何情况下,此程序中都不需要属性。这是cabltv的担忧之一,因为他不被允许修改他的区块。
我想我还是会把它放在那里。
页: 1 [2]
查看完整版本: 打断/删除bl内的Pline