GP_ 发表于 2022-7-5 21:06:14

 
 
(vl load com)。。。。。
 
更新了邮政编码#3

Hrcko 发表于 2022-7-5 21:10:23

嗨,GP!
 
我尝试了新代码,但仍然无法得到偏移的折线。我还尝试使用AutoCAD 14。我错过了一些东西。
 
正如Marko所说,我正在上传命令(post#7)。可以吗?
 
谢谢你的帮助。

mkranthikittu 发表于 2022-7-5 21:14:56

您好,先生,
 
你能帮我吗?我是这个cad导师的新手,我需要一个2011年auto cad MAP的帮助

mkranthikittu 发表于 2022-7-5 21:17:13

先生的
在这个Lisp程序的地方,我需要一些修改,先生
 
我想一次画更多的集,你能帮我吗,先生
 
(定义c:of(/foo AT:GetSel \u pnts \u pline \u lwpline \u dist e1 e2)
;; 在两条选定曲线(顶点中点)之间绘制(LW)多段线。
;; 艾伦·J·汤普森,09.29.10
 
(vl load com)
 
(defun foo(e)
(和(wcmatch(cdr(assoc 0(entget(car e))))“线,*多段线,样条线”)
(非(vlax曲线闭合(e车)))
)
)
 
(defun AT:GetSel(meth-msg-fnc/ent)
;; 方法-选择方法(entsel,entsel,ENTSELP)
;; 消息-要显示的消息(默认为零)
;; fnc-应用于选定对象的可选函数
;; 例如:(AT:GetSel entsel“\n选择弧:”(λ(x)(等式(cdr(assoc 0(entget(car x)))))“弧”))
;; 艾伦·J·汤普森,05.25.10
(虽然
(progn(setvar’ERRNO 0)
(设置)方法(条件(味精)
(“\n选择对象:”)
)
)
)
(cond((eq(getvar'ERRNO)7)(princ“\n失败,再试一次。”)
((eq(type(car ent))'ENAME)
(如果(和fnc(不是(fnc ent)))
(普林斯“\n无效对象!”)
)
)
)
)
)
耳鼻喉科
)
 
(定义PNT(e/p l)
(如果e
(cond((wcmatch(cdr(assoc 0(entget e)))“弧、线、样条”)
(列表(vlax曲线getStartPoint e)(vlax曲线getEndPoint e))
)
((wcmatch(cdr(assoc 0(entget e)))“*多段线”)
(重复(setq p(1+(fix(vlax curve getEndParam e)))
(setq l(cons(vlax curve getPointAtParam e(setq p(1-p)))l))
)
)
)
)
)
 
(数据线(lst)
(如果(和(>(长度lst)1)
(entmakex’((0。“多段线”)(10 0.0.0。)(70 . ))
(foreach x lst(entmakex(list’(0。“顶点”)(cons 10 x)’(70.32)))
)
(cdr(assoc 330(entget(entmakex’((0.“sequend”а)а)а)а)
)
)
 
(数据线(lst)
(如果(>(长度lst)1)
(entmakex(附加)
(列表'(0。“LWPOLYLINE”)
“(100.“AcDbEntity”)
“(100.“AcDbPolyline”)
(cons 90(长度lst))
(cons 70(*(getvar’plinegen)128))
)
(mapcar(函数(λ(p)(列表10(car p)(cadr p)))lst)
)
)
)
)
 
(defun _dist(a b)(距离(list(car a)(cadr a))(list(car b)(cadr b)))
 
(如果
(和
(setq e1(_pnts(car(AT:GetSel entsel“\n选择第一条开放曲线:“foo)))
(setq e2(_pnts(car(AT:GetSel entsel“\n选择下一条开放曲线:“foo)))
(非(initget 0“Lwpolyline Polyline”))
(setq*LBL:Opt*(cond((getkword(strcat)“\n指定要绘制的线:
(条件(*LBL:Opt*)
((setq*LBL:Opt*“Lwpolyline”))
)
">: "
)
)
)
(*LBL:Opt*)
)
)
)
((如果(等式*LBL:Opt*“Lwpolyline”)
_lwpline公司
_普林线
)
(vl删除零
(mapcar(功能(λ(a b))
(if(和a b(not(grdraw(trans a 0 1)(trans b 0 1)1 1)))
(mapcar(函数(λ(a b)(/(+a b)2))a b)
)
)
)
e1
(如果(
(_dist(car e1)(last e2))
)
e2
(反向e2)
)
)
)
)
)
(普林斯)
)
 
 
 
(定义c:FZ(/i ss e zro)
 
(if(setq i-1 zro(ssadd)ss(ssget“_X”'((0。“LWPOLYLINE”)))
(while(setq e(ssname ss(setq i(1+i)))
(和(等于0.0(vlax curve getDistatParam e
(vlax曲线getEndParam e))1e-14)
(ssadd e zro)))
 
(sssetfirst nil zro)
(普林斯)
页: 1 [2]
查看完整版本: 偏移三维多段线