CAD多线段(\曲线)标注指定点到起点距离(桩号)

  • A+
所属分类:CAD
广告也精彩

几天前遇到了麻烦,需要在一条多线段上标注某点距离起点距离,在网上查了半天,找到了方法(部分代码来自网络,作者不详),可以测量距离,但是不能标注距离,之后进行了一下修

CAD多线段(\曲线)标注指定点到起点距离(桩号)

CAD多线段(\曲线)标注指定点到起点距离(桩号)

标注。现在分享给大家。

1.加载lsp命令为appload

也可以添加到启动组,这样不用每次都需要加载,启动组—内容—找到.lsp文件。2.命令为zhbz,选择多线段(不能为封闭线段)—点击需要测量的位置—点击标注距离文字的位置,(注意,自己判断起点\终点,头尾可不一定哦,当然,你自己画的线就没问题了。)将以下代码复制到记事本,以【.lsp】为后缀命名,存储以ANSI编码形式,打开cad,【appload】加载,命令【zhbz】就可以查询并标注。

(defun C:zhbz ( / &dis1 &k1 &n1 &p1 &ss1)
 (if (null vlax-dump-object) (vl-load-com) )
 (setq &ss1 '("LINE" "LWPOLYLINE" "CIRCLE" "ARC" "HELIX" "ELLIPSE" "SPLINE" "POLYLINE"))
 ;曲线有起点:直线,多段线,圆,圆弧,螺旋对象,椭圆,样条曲线,二维多段线
 (if (and
  (setq &k1 (entsel "\n请选择曲线"))
  (setq &k1 (car &k1))
  (member (cdr (assoc 0 (entget &k1))) &ss1);确认是曲线
  (setq &p1 (getpoint "\n请选择指定点"))
  (setq &p1 (vlax-curve-getclosestpointto &k1 &p1));取得最近点
  (setq &n1 (vlax-curve-getParamAtPoint &k1 &p1));取得参数
  (setq &dis1 (vlax-curve-getDistAtParam &k1 &n1));到起点距离
    (setq b (rtos &dis1 2 2)) ;将数据结果由实数转换成字符串,且设置为两个精度,即小数点后两位
(setq a (getpoint "\n屏幕单击插入点")) ;指定插入点
(entmake (list '(0 . "text")         ;建立文字图元属性列表,文字,插入点,内容,字高
                  (cons 10 a)          
                  (cons 11 a)
                  (cons 1 b)
                  '(40 . 15);字高
           )
)
 )
  (princ (strcat "\n指定点到起点距离为" (rtos &dis1)));命令行显示
 )
 (princ)
);复制到记事本,以【.lsp】为后缀命名,存储以ANSI编码形式,打开cad,【appload】加载,命令【zhbz】就可以查询并标注,by xkbuild,更多搜索 xkbuild

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: