没有担心失败,仍然很好,至少你迈出了第一步尝试:)
您可以将代码粘贴到代码标记中
- [/color][color=“darkgreen”]此处编码[/color][color=“red”]
(无空格斜杠)[code](定义c:DBP3(/AT:DrawX AT:CycleThroughSS p1 ent p2 d1 d2 dlst);;计算曲线对象上两个指定点之间的距离;;Alan J.Thompson,03.20.10/03.28.10/03.07.11/05.09.11(vl load com)(defun AT:DrawX(P C);;在指定点绘制和“X”向量;;P——“X”的放置点;;C-X的颜色(必须是整数b/w 1和255);;Alan J.Thompson,10.31.09(if(vl consp P)((lambda(d)(grvecs(cons C(mapcar(function(lambda(n)(polar P(*n pi)d)))'(0.25 1.25 0.75 1.75)))P)(*(getvar’viewsize)0.02))(defun AT:CycleThroughSS(ss/l i e);;循环选择一个选择集;;ss—选择集;;艾伦·J·汤普森,03.30.11(if(eq(type ss)'PICKSET)(if(eq(setq l(sslength ss))1)(ssname ss 0)(progn(princ“\n to cycle through entities:”)(redraw(setq e(ssname ss(setq i 0)))3)(while(eq(cadr(grread nil 10))9)(mapcar'redraw(list e(setq e(ssname ss(setq i(rem(1+i)l k))))'(4 3))(redraw e 4)e)))(重画)(if(and(AT:DrawX(setq p1(getpoint“\n指定曲线上的第一个点:”)3)(或(setq ent(AT:CycleThroughSS(ssget“\u C”(list(car p1)(cadr p1))(list(car p1)(cadr p1))'((0。“弧、圆、椭圆、线、*多段线、样条曲线”))))(progn(警告“点必须在曲线上!”)(redraw))(progn(redraw ent 3)T))(while(AT:DrawX(setq p2(getpoint p1“\n指定曲线上的下一个点:”)3)(或(and(ssget“_C”(list(car p2)(cadr p2))(list(car p2)(cadr p2))'((0。“弧,圆,椭圆,线,*多段线,样条曲线”))(setq d1(vlax curve getDistAtPoint ent(trans p1 1 0)))(setq d2(vlax curve getDistAtPoint ent(trans p2 1 0)))(progn(警报“点必须在曲线上!”)(重画))((lambda(dist/div)(while(<dist(-(cadr dlst)(setq div(/(cadr dlst)100)))(grdraw(trans(vlax curve getPointAtDist ent dist)0 1)(trans(vlax curve getPointAtDist ent(setq dist(+div dist)))0 1)1))(princ);;;(命令“_.text”p2“”(rtos(abs(-d1 d2)))(entmakex(list’(0。“text”)(cons 1(rtos(abs(-d1 d2))2))(cons 10(trans p2 1 0))(cons 40(getvar‘textsize)))(car(setq dlst(vl sort(list d1 d2)))(函数 |