难题-折线Lis
难题-需要多段线LISPAutoCAD 2007
我有很多棘手的问题/要求,我目前正在寻找一些LISP来解决它们。我一直在网上搜索我需要的lisps,虽然我已经找到了一些东西,但我仍然有一些东西,我似乎无法找到确切的我要找的东西。我想借此机会提前感谢每一位对我的问题有意见的人,感谢他们给予我的任何帮助。
1)全局宽度多段线-查找lisp,该lisp将询问所需的多段线全局宽度,然后要求您选择需要设置为该特定宽度的多段线。
2)多段线连接(在一个步骤中)-查找lisp,该lisp允许您选择多条直线、圆弧、现有多段线并自动将其全部转换为多段线,将“连接模糊”设置为0,并在一个步骤中连接所有选定的部分以形成一条连接的多段线。
3.)将圆弧夹点添加到多段线-查找允许您将顶点夹点和圆弧夹点添加到多段线的列表。我找到了一个。vlx文件,允许我将顶点添加到多段线,但我希望能够有一个lisp,将允许我这样做,但也添加弧夹点。
4.)折线闭合-寻找一步lisp来闭合折线 1)
(defun c:pwid(/ i ss ent)
(vl-load-com)
(or *wid (setq *wid 0.0))
(if (and (setq i -1 ss (ssget "_:L" '((0 . "LWPOLYLINE"))))
(not (initget 4))
(setq *wid (cond ((getdist (strcat "\nSpecify New Width <"
(vl-princ-to-string *wid) "> : "))) (*wid))))
(while (setq ent (ssname ss (setq i (1+ i))))
(vla-put-ConstantWidth (vlax-ename->vla-object ent) *wid)))
(princ))
4)
(defun c:cls (/ i ss ent)
(vl-load-com)
(if (setq i -1 ss (ssget "_:L" '((0 . "*POLYLINE"))))
(while (setq ent (ssname ss (setq i (1+ i))))
(vla-put-closed (vlax-ename->vla-object ent) :vlax-true)))
(princ))
2).... 在此处搜索。。。有很多货物!
3)http://www.theswamp.org/index.php?topic=30170.0
将来,最好在创建线程之前搜索程序。。。 谢谢大家的帮助。
妈的,李,你真棒。非常感谢你的帮助。
现在,我已经回答了4个折线问题中的3个。
一步中的多段线连接是最后一步。相信我,我已经搜索过了,我找到了不少,但没有一个我百分之百地找到了工作。这是我发现的最好的一个,但由于某些原因,它只适用于直线。每当我试图把一个弧加入到我的直线上时,Lisp程序就会反弹。这就是我去论坛的原因。我在Lisp程序中看到“弧”。
对不起,我不知道如何用窗口括住Lisp程序。代码:我被告知用[]附上文本,但没有起作用
(定义c:polyjoin(/sspj FRSTANT FRSTANDDAT)
(“nPL连接…”原则)
(princ“nSelect objects…”)
(setq sspj(ssget))
(setq FRSTANT(ssname sspj 0)
FRSTENDAT(entget frstent)
) ;_ setq结束
(条件
((=(cdr(assoc 0 frstentdat))“多段线”)
(命令“\u pedit”frstent“\u j”sspj“”)
)
((=(cdr(assoc 0 frstentdat))“LWPOLYLINE”)
(命令“\u pedit”frstent“\u j”sspj“”)
)
((=(cdr(assoc 0 frstentdat))“行”)
(命令“\u pedit”frstent“\u y”“\u j”sspj”“”“)
)
((=(cdr(assoc 0 frstentdat))“ARC”)
(命令“\u pedit”frstent“\u y”“\u j”sspj”“”“)
)
(T(princ“nCan not join this!!…”)
) ;_ 条件结束
(普林斯)
) ;_ defun结束 使用标记将文本括起来。
(标签中没有空格)
(defun c:pljoin (/ *error* vl ov ss)
(defun *error* (msg)
(and ov (mapcar 'setvar vl ov))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ))
(setq vl '("CMDECHO" "PEDITACCEPT") ov (mapcar 'getvar vl))
(mapcar 'setvar vl '(0 1))
(if (setq ss (ssget "_:L" '((0 . "LINE,ARC,LWPOLYLINE"))))
(vl-cmdf "_.pedit" "_M" ss "" "_J" 0.0 ""))
(mapcar 'setvar vl ov)
(princ))
更改宽度:
http://www.cadtutor.net/forum/showpost.php?p=271429&postcount=14
您将需要此子程序:
http://www.cadtutor.net/forum/showpost.php?p=271389&postcount=26
连接选定行:
http://www.cadtutor.net/forum/showpost.php?p=271444&postcount=21
页:
[1]