cad中lisp文件给恶作剧_求大神们帮忙更改下CAD 的lsp 文件 小弟谢谢啦

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

文字距离直线太远了 能改近点吗? 还有文字有的是倒着的,能正过来吗?

麻烦大神帮我改改 谢谢啦

(defun c:LLL()

(COMMAND"UCS" "")

(setvar"cmdecho" 1)

(SETVAR"OSMODE" 0)

(setq AcadObject (vlax-get-acad-object) AcadDocument (vla-get-ActiveDocument Acadobject) mSpace (vla-get-ModelSpace Acaddocument))

;;选取需要测量的样条曲线、圆弧、直线、椭圆

(setq en(ssget (list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))

(setq i 0)

;;获取系统参数textsize

(setq shh (getvar "textsize"))

(setq str_hh(strcat "\n文字高度 : "))

(setq hh(getdist str_hh))

(while hh

(setvar "textsize" hh)

(setq hh nil))

;;输入标注文字高度

;;循环开始

(repeat(sslength en)

(setq ss(ssname en i))

(setq endata(entget ss))

(command "lengthen" ss "")

(setq dd(getvar "perimeter"))

(princ(strcat "\n长度=" (rtos dd 2)))

;;寻找代表图层的字符串

(setq aa(assoc 0 endata))

;;获取图层名称

(setq aa1(cdr aa))

;;判断线条种类

(cond ((= aa1 "SPLINE")

;;如果是spline

(progn

(setq arcObj(VLAX-ENAME->VLA-OBJECT ss))

(setqstartPnt1 (vla-get-ControlPoints arcObj))

(setq p1

(vlax-safearray->list(vlax-variant-value startPnt1))

)

(setq x1 (car p1))

(setq y1(cadr p1))

(setq z1(caddr p1))

(setq pp1(list x1 y1 z1))

(repeat (- (/(length p1) 3) 1)

;;循环,寻找最后一个控制点

(setq p1(cdddr p1))

(setq x2 (car p1))

(setq y2(cadr p1))

(setq z2(caddr p1))

)

(setq pp2(list x2 y2 z2))

)

)

((= aa1"LWPOLYLINE")

;;如果是LWPOLYLINE

(progn

(setq arcObj(VLAX-ENAME->VLA-OBJECT ss))

(setqstartPnt1 (vla-get-Coordinates arcObj))

(setq p1

(vlax-safearray->list(vlax-variant-value startPnt1))

)

(setq x1 (car p1))

(setq y1(cadr p1))

(setq z1(caddr p1))

(setq pp1(list x1 y1 z1))

(repeat (- (/(length p1) 3) 1)

;;循环,寻找最后一个控制点

(setq p1(cdddr p1))

(setq x2 (carp1))

(setq y2(cadr p1))

(setq z2(caddr p1))

)

(setq pp2(list x2 y2 z2))

)

)

(t

;;如果是其他种类线条

(progn

(setq arcObj(VLAX-ENAME->VLA-OBJECT ss))

(setq startPnt1 (vla-get-StartPoint arcObj))

;;获取起点

(setq endPnt1(vla-get-EndPoint arcObj))

;;获取终点

(setq pp1 (vlax-safearray->list(vlax-variant-value startPnt1))

)

(setq

pp2(vlax-safearray->list (vlax-variant-value endPnt1))

)

)

)

)

(setq x1 (car pp1))

(setq y1(cadr pp1))

(setq z1(caddr pp1))

(setq x2 (car pp2))

(setq y2(cadr pp2))

(setq z2(caddr pp2))

(setq x (/ (+ x1 x2) 2))

(setq y (/ (+ y1 y2) 2))

(setq z (/ (+ z1 z2) 2))

(setq pt(list x y z))

;;取得线段两端的中点

(setq ang(a

ngle pp1 pp2))

;;获取角度

(if (> (* (/ ang pi) 180) 180)

(setq ang (+ ang pi))

)

(command "text"

"j"

"bc"

pt

""

(* (/ ang pi) 180)

(strcat "" (rtos dd 2))

""

)

(setq i (1+ i)))

(prin1)

)

(prompt"\n <>在图中直接写出长度")

(prin1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值