uditx 发表于 2011-9-3 20:42:38

求教呀 文字适应表格 但不能调整文字大小

各位大侠下面是我写的程序,文字适应表格的,但是有问题已解决不能调整文字大小,请教该 怎么做呀谢谢了

(defun c:abc()
(setvar "CMDECHO" 0)
(setq s1 (ssget '((0 . "*TEXT"))))
(setq i 0)
(repeat (sslength s1)   
(setq entname (ssname s1 i))   
(setq nlist (entget entname))
(vl-cmdf "_.JustifyText" entname "" "MC");设置文字样式居中
(setq nlist (entget entname))
(setq tt (cdr (assoc 1 nlist)))   ;取得文字      
(setq th (cdr (assoc 40 nlist)));取得文字高度      
(setq pt (cdr (assoc 10 nlist)));取得文字插入点
(setq ttlen (strlen tt))          ;取得文字字符个数      
(setq twid (* (* th 0.7) ttlen));计算文字宽度
(setq lst nil)   
(command "boundary" "a" "i" "n" "" "" pt "")   
(setq pen (entlast))   
(setq pel (entget pen));取出对象数据表   
(setq pel (member '(100 . "AcDbPolyline") pel));取出其中的有关数据   
(setq p1 (cdr (nth 6 pel))) ;取出第一点控制点点位   
(setq p2 (cdr (nth 14 pel))) ;取出对角点控制点点位   
(setq p0 (list (/ (+ (car p1) (car p2)) 2) (/ (+ (cadr p1) (cadr p2)) 2) 0.0));求中心点坐标 以后就是写文字啦,不表述了   
(setq p1 (list (car p1) (cadr p1) 0.0));二维点坐标转三维点坐标
(setq p2 (list (car p2) (cadr p2) 0.0));二维点坐标转三维点坐标
(setq cdd (- (car p1) (car p2)))    ;取得表格长度
(setq ckk (- (cadr p1) (cadr p2)));取得表格宽度

(setq nlist (subst (cons 41 cdd) (assoc 41 nlist) nlist))   ;设置文本宽度
(setq nlist (subst (cons 10 p0) (assoc 10 nlist) nlist))    ;取得表格居中
(if (> twid cdd) (progn
   (setq kk 0.75ll 0.7)
   (setq nlist (subst (cons 1 (strcat "\\W" (rtos ll 2) ";\\T" (rtos kk 2) ";" tt)) (assoc 1 nlist) nlist))
   (setq oo (- twid (* (- ttlen 1) 0.75)))
   (if (> oo cdd) (progn
    (setq pp 0.75)
    (setq nlist (subst (cons 44 pp) (assoc 44 nlist) nlist))
   (setq yt (cdr (assoc 43 nlist)))
   (setq pf (cond
   ((= ckk 5) (setq pf 1.8))
   ((= ckk 7) (setq pf 2.4))
   ((= ckk 10) (setq pf 3.5))
   ((= ckk 17) (setq pf 6))
   )
   )

   ;(setq pf 6)
   (if (> yt (* th 2)) (progn
   ;(setq pf (* th 0.71428571428571428571428571428571))
   (setq nlist (subst (cons 40 pf) (assoc 40 nlist) nlist))             ;调整多行文字大小
    ))
   ))
))
(entmod nlist)
(setq i (1+ i))
)
(setvar "OSMODE" 15359)
(princ)
)

winabcd 发表于 2011-9-9 13:00:04

文字大小不能调整,你是用文字适应表格,还是让表格适应文字。

uditx 发表于 2011-9-9 14:00:07

用文字适应表格呀
页: [1]
查看完整版本: 求教呀 文字适应表格 但不能调整文字大小