改进了一下,主要是我发现标注中的文本都是居中对齐的,不知道是不是都这样的。。。
-
- (defun c:test( / ent ent_dim ents pt_lst ang_txt height pt width dist ang pt_w1 pt_w2 pt_w3 pt_w4 os)
- (setq os (getvar "osmode"))
- (setq ent (nentsel))
- (setq ent_dim (car (last ent)))
- (setq ent (car ent))
- (setq ents (entget ent))
- (setq pt_lst (textbox (list (cons 0 "TEXT")
- (assoc 1 ents)
- (assoc 40 ents)
- )
- )
- )
- (setq ang_txt (cdr (assoc 50 ents)))
- (setq pt (cdr (assoc 10 ents)))
- (setq height (cdr (assoc 43 ents)))
- (setq width (cdr (assoc 42 ents)))
- (setq height (* height 1.2))
- (setq width (* width 1.2))
- (setq ang (atan (/ height width)))
- (setq dist (/ (sqrt (+ (expt height 2) (expt width 2))) 2.0))
- (setq pt_w1 (polar pt (- (+ ang_txt pi) ang) dist))
- (setq pt_w2 (polar pt (+ ang_txt ang) dist))
- (setq pt_w3 (polar pt (- ang_txt ang) dist))
- (setq pt_w4 (polar pt (+ ang_txt pi ang) dist))
- (setvar "osmode" 0)
- (setvar "cmdecho" 0)
- (command "_.wipeout" "f" "off")
- (command "_.wipeout" pt_w1 pt_w2 pt_w3 pt_w4 "")
- (entdel ent_dim)
- (entdel ent_dim)
- (setvar "osmode" os)
- (princ)
- )
|