lisp一键室内标注_LISP-标注的自动位置调整

(defun c:da(/ s0 e e_list e_list_long p0 p10 p11 p13 p14 p0 L00 k1 k L0 ct axis t42 pp11 pp11_x

pp11_y chutu_scale_0)

(setvar "cmdecho" 0)

(princ "

请输入出图比例

(

默认值

)")(princ chutu_scale)

(setq chutu_scale_0 (getint))

(if (/= chutu_scale_0 nil)

(setq chutu_scale chutu_scale_0)

)

(princ "\n

请确认已经无碎数,无多余点

......")

(princ "\n

请选择要移动的标注

......")

(setq s0 (ssget ":s"))

(princ "\n

请指定偏移的方向

......")

(setq p0 (getpoint))

(setq L00 200)

(setq k1 (/ (float chutu_scale) 100))

(setq L0 (* L00 k1))

(setq ct 0)

(setq e (ssname s0 ct))

(setq e_list (entget e))

(setq e_list_long (length e_list))

(setq p10 (cdr(assoc 10 e_list)))

(setq p11 (cdr(assoc 11 e_list)))

(setq p13 (cdr(assoc 13 e_list)))

(setq p14 (cdr(assoc 14 e_list)))

(setq t42 (cdr(assoc 42 e_list)))

(if (and (<= (car p13) (+ (car p14) 1)) (>= (car p13) (- (car p14) 1)));;;;;

标注的是

Y

轴方向的长

(PROGN

(setq axis "Y")

(if (<= (cadr p11) (cadr p0))

(progn

(setq k 1)

)

(progn

(setq k (- 0 1))

)

)

(setq pp11_x (car p11))

(setq pp11_y (+ (cadr p11) (* (+ L0 (/ t42 2)) k)))

(setq pp11 (list pp11_x pp11_y))

(setq e_list (subst (cons 70 160) (assoc 70 e_list) e_list))

(entmod e_list)

(setq e_list (subst (cons 11 pp11) (assoc 11 e_list) e_list))

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值