本帖最后由 鱼与熊掌 于 2014-6-1 22:30 编辑
搞了一天,没什么进展.来求改善.
73哥的代码,画线并标注text文字.
但是有时候会丢失一个东西,比如说点画着画着就发现少了一条线.
丢失了点.文字标出来了.情况是出现在我用点画之后,忽然使用输入20 然后就没了.
少了个点.
除了优化代码之外.
希望可以改个版本,编程自动dli.并且向外偏移3*(标注比例)的值. 也就是 (getvar "dimscale")- (defun c:ts(/ p q pt)
- ;(setvar'osmode 16384)
- (setq p(getpoint"指定起点"))
- (while p
- (if p(progn
- (command "pline" p)
- (while(setq q(getpoint p"下一点")pt(mapcar'(lambda(x)(* x 0.5))(mapcar'+ p q)))
- (command q)
- (entmake(list '(0 . "TEXT")(cons 10 pt)(cons 40 1)(cons 1(rtos(distance p q)2 2))
- (cons 50 (if(and (<(/ Pi 2)(angle p q))(>(* 1.5 pi)(angle p q)))(angle q p)(angle p q)))
- (cons 7 "city")(cons 72 1)(cons 73 1)(cons 40 (* 2 (getvar "dimscale")))(cons 11 pt)))
- (setq p q))
- (command "")
- (setq p(getpoint"指定起点")))
- (setvar'osmode(-(getvar osmode)16384))))
- (princ))
|