网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月24日漏签0天
cad吧 关注:1,184,274贴子:3,306,084
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回cad吧
>0< 加载中...

求帮忙更改cad lsp 代码

  • 取消只看楼主
  • 收藏

  • 回复
  • 茹若初见
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
文字距离直线太远了 能改近点吗? 还有文字有的是倒着的,能正过来吗?
麻烦大神帮我改改 谢谢啦
(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文字高度 <" (rtos shh 2) ">: "))
(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(angle 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)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回cad吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示