Lisp尺寸标注增加前后缀_lisp程序-标注尺寸对齐

这是一个Lisp程序,用于在AutoCAD中实现尺寸标注的对齐操作,特别是在多个水平或垂直标注的情况下。用户可以指定标注线和引出线的位置,程序会自动调整标注的坐标点以实现对齐。此外,程序还包含了计算坐标点和更新标注线位置的子程序。
摘要由CSDN通过智能技术生成

命令:bzdq

;;;_______________________________________________________

;;; 标注对齐 langjs 2009.5.5

;;; (本程序仅适用于多个水平或垂直标注对齐)

;;;_______________________________________________________

(defun c:bzdq ()

(setq ss (ssget '((0 . "DIMENSION"))))

(setq p0 (getpoint"\n指定标注线位置,或&lt不改变&gt:"))

(if p0

(progn

(setq slen (sslength ss) I 0 )

(while (ssname ss I)

(setq ent (ssname ss I))

(setq ent (entget ent))

(jisuanshuju)

(gengxinbiaozhuxian)

(setq I (+ 1 I))

);end while

);end progn

(setq p0 '(0.0 0.0 0.0)) ;如无则付p0一个点防止下面程序出错

);end if

(setq p00 (getpoint"\n指定引出线位置,或&lt不改变&gt:"))

(if p00

(progn

(setq slen (sslength ss) I 0 )

(while (ssname ss I)

(setq ent (ssname ss I))

(setq ent (entget ent))

(jisuanshuju)

(gengxinchichunjiexian)

(setq I (+ 1 I))

)

);end progn

(exit)

);end if

(princ )

)

(defun jisuanshuju ();计算坐标点子程序

(setq p0x (car p0) p0y (cadr p0))

(setq p00x (car p00) p00y (cadr p00))

;;取得标注各关键坐标点值

(cond

((= (cdr (assoc 1 ent)) "&lt&gt{}{}")

(setq txt2 (cdr (assoc 42 ent)) p10 (cdr (assoc 10 ent)) p14 (cdr (assoc 14 ent)) p11 (cdr (assoc 11 ent)) p13 (cdr (assoc 13 ent)) ))

((= (cdr (assoc 1 ent)) "" )

(setq txt2 (cdr (assoc 42 ent)) p10 (cdr (assoc 10 ent)) p14 (cdr (assoc 14 ent)) p11 (cdr (assoc 11 ent)) p13 (cdr (assoc 13 ent)) ))

(t (princ ) )

)

(setq p10x (car p10) p10y (cadr p10) p14x (car p14) p14y (cadr p14) p11x (car p11) p11y (cadr p11) p13x (car p13) p13y (cadr p13) )

;;判断横、纵坐标并计算对齐后的关键标注坐标点值

(cond

((= (FIX (+ 0.5 P10x)) (FIX (+ 0.5 P14x))) (setq np10 ( list p10x p0y 0.0 ) np11 (list P11x (+ (- p11y p10y) p0y) 0.0 ) np13 (list P13x p00y 0.0 ) np14 (list P14x p00y 0.0 ) ) )

((= (FIX (+ 0.5 P10y)) (FIX (+ 0.5 P14y))) (setq np10 ( list p0x p10y 0.0 ) np11 (list (+ (- p11x p10x) p0x) P11y 0.0 ) np13 (list P00x p13y 0.0 ) np14 (list P00x p14y 0.0 ) ) )

(t (exit ) )

)

(princ )

)

(defun gengxinbiaozhuxian () ;;对齐标注线子程序

(setq ent (subst (cons 10 nP10 ) (assoc 10 ent) ent) )

(setq ent (subst (cons 11 nP11 ) (assoc 11 ent) ent) )

(entmod ent)

(princ )

)

(defun gengxinchichunjiexian ();;对齐引出线子程序

(setq ent (subst (cons 13 nP13 ) (assoc 13 ent) ent) )

(setq ent (subst (cons 14 nP14 ) (assoc 14 ent) ent) )

(entmod ent)

(princ )

)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值