cj52000 发表于 2015-11-9 23:44:01

修改圆分类标注字母为多段线标注字母

本帖最后由 cj52000 于 2015-11-10 08:17 编辑

在网上搜到了Z版的一个圆分类标注字母,很好用,动手改了一下使其标注多段线字母,但是字母始终在多段线的一角,现在想让字母能够在多段线中心或靠近中心,并且能指定字母,请大家帮帮忙,谢啦~~~

源码如下:


;圆分类标注 明经ZZXXQQ 2009.6
(defun c:tt ()
(setvar "CMDECHO" 0)
(setq oldos (getvar "OSMODE"))
(setvar "OSMODE" 0)
(if (and (princ "\n【提示】选择圆对象....") (setq ss1 (ssget '((0 . "LWPOLYLINE"))))) (progn
(setq i 0 j 65 cl (list))
(repeat (sslength SS1)
   (setq ent (entget(ssname ss1 i)))
   (setq pc (cdr(assoc 10 ent)))
   (setq r (cdr(assoc 40 ent)))
   (if (setq rl (assoc r cl))
    (setq cl (subst (list r (cons (caadr rl) (1+ (cdadr rl)))) rl cl))
    (setq cl (cons (list r (cons (chr j) 1)) cl) j (1+ j))
   )
   (setq i (1+ i))
)
(setq i 0 j 0 cl (reverse cl))
(repeat (sslength ss1)
   (setq ent (entget(ssname ss1 i)))
   (setq pc (cdr(assoc 10 ent)))
   (setq r (cdr(assoc 40 ent)))
   (if (setq rl (cadr(assoc r cl)))
    (command "TEXT" "MC" pc "" 0.0 (car rl))
   )
;   (if (and (setq rl (assoc r cl)) (> (cdr r1) 1))
;    (command "TEXT" "J" "MC" pc "" 0.0 (ascii (+ (cdr rl) 40)))
;   )
   (setq i (1+ i))
)
))
(setvar "OSMODE" oldos)
(setvar "CMDECHO" 1)
(princ)
)

cj52000 发表于 2015-11-10 13:10:47

各位来看一下啊

hnzkhyyl 发表于 2017-12-21 08:09:30

圆分类标注字母的有源代码怎么没有贴上来???
页: [1]
查看完整版本: 修改圆分类标注字母为多段线标注字母