标注界址点号lisp_CAD lisp 下面代码如何修改 才能使标注位置离开基准点

(defunc:k(/oldcmdssss1icenpp1pp2iip1p2ll)(princ"\n选取需要标注的孔:")(setqoldcmd(getvar"cmdecho"))(setvar"cmdecho"0)(setqss(ssget'((0."insert"))))(setqss1'())(setqi0)(rep...

(defun c:k (/ oldcmd ss ss1 i cen pp1 pp2 ii p1 p2 ll)

(princ "\n选取需要标注的孔: ")

(setq oldcmd (getvar "cmdecho"))

(setvar "cmdecho" 0)

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

(setq ss1 '())

(setq i 0)

(repeat (sslength ss)

(setq cen (cdr (assoc 10 (entget (ssname ss i)))))

(setq ss1 (cons cen ss1))

(setq i (1+ i))

)

(setq ss1

(vl-sort ;Vl-sort 排序

ss1

'(lambda (pp1 pp2)

(if (< (abs (- (cadr pp1) (cadr pp2))) 0.01)

(< (car pp1) (car pp2))

(< (cadr pp1) (cadr pp2))

)

)

)

)

(setq ii 0)

(repeat (- (sslength ss) 1)

(setq p1 (nth ii ss1))

(setq p2 (nth (1+ ii) ss1))

(setq ll (rtos (* 1000 (distance p1 p2)) 2 0))

(if (> (* 1000 (distance p1 p2)) 1) ;小于1则不标注

(progn

(command "dimaligned" p1 p2 "t" "" p1)

(princ

(strcat "\n标注孔距=" (rtos (* 1000 (distance p1 p2)) 2 2)) ;标注文字

)

)

)

(setq ii (1+ ii))

)

(setvar "cmdecho" oldcmd)

(prin1)

)

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值