[求助]文字改高度
<p>写了前面一段再也写不去了,菜鸟就是菜鸟,搞不定这程序哪出了问题,请帮忙改一下吧,</p><p>;TEXT,MTEXT,DMINENSION改字高</p><p>(defun c:tc () <br/> (princ "Modify TEXT Height")<br/> (setvar "cmdecho" 0)<br/> (command "undo" "be")<br/> (setq ss (ssget '((0 . "TEXT,MTEXT,DIMENSION"))))<br/> (setq tt3 (ssadd) mm3 (ssadd) dd3 (ssadd) i 0)<br/> (while (< i (sslength ss)) ;这段结束就不对了<br/> (if (= "TEXT" (cdr (assoc 0 (entget (ssname ss i))))) <br/> (ssadd (ssname ss i) tt3)<br/> )<br/> (if (= "MTEXT" (cdr (assoc 0 (entget (ssname ss i))))) <br/> (ssadd (ssname ss i) mm3)<br/> )<br/> (if (= "DMINENSION" (cdr (assoc 0 (entget (ssname ss i))))) <br/> (ssadd (ssname ss i) dd3)<br/> )<br/> (setq i (+ i 1))<br/> )<br/> (setq i 0)<br/> (setq sst (ssname tt3 i) ssm (ssname mm3 i) ssd (ssname dd3 i))<br/> (setq t0 (cdr(assoc 40 (entget sst))))<br/> (setq m0 (cdr(assoc 40 (entget ssm))))<br/> (setq d0 (cdr(assoc 40 (entget ssd))))<br/> (princ (strcat "\n<" (itoa (sslength tt3)) " 个文字高度为" (rtos t0) ">"<br/> <" (itoa (sslength mm3)) " 个文字高度为" (rtos m0) ">"<br/> <" (itoa (sslength dd3)) " 个文字高度为" (rtos d0) ">"<br/> )<br/> )<br/> (initget (+ 2 4))<br/> (setq th (getdist "\n请输入新的字高:"))</p><p> (setq i 0)<br/> (repeat (sslength tt3)<br/> (setq si (ssname tt3 i))<br/> (setq thc (entget si) thc (subst (cons 40 th) (assoc 40 thc) thc))<br/> (entmod thc)<br/> (setq i (+ i 1))<br/> )<br/>(princ)<br/>)<br/></p> <p>1.程序思路被复杂化了,多看看别人写的程序。</p><p>2.DMINENSION 对象的文字高度在扩展数据中</p> DMINENSION 对象的文字高度在扩展数据 在哪有啊,怎么提出来呀,网站上的搜索不好用,搜半天也没有相关的贴,不相关的贴出一堆,哎 <p>(entget ENAME '("ACAD"))</p><p>dxf组码 -3 后面的就是扩展数据,注意,真正的高度还要乘以标注样式的全局比例哦</p> 本帖最后由 作者 于 2009-9-28 2:03:29 编辑 <br /><br /> <p>错误...删除</p> 看来没有能力抓出来标注的字高了,还有什么标注样式的全局变量 <p>对尺寸,用activex比较方便:</p><p>(vla-get-TextHeight (vlax-ename->vla-object ent))</p> <p>樓上的格式是怎樣寫的?</p><p>Command: (vla-get-TextHeight (vlax-ename->vla-object (entsel)))</p><p>Select object:<br/>"bad argument type: lentityp (<Entity name: 7ef78160> (1857.96 268.192 0.0))"</p><p>Command: (vla-get-TextHeight (vlax-ename->vla-object (ssget)))</p><p>"bad argument type: lentityp <Selection set: 38b>"</p> <p>变量是entname,要用entsel,则为:</p><p>(vla-get-TextHeight (vlax-ename->vla-object (car (entsel))))</p><p></p> Tks! 我要改成ssget能用的來配合整個程序的運用,entsel只能單選,不方便,謝謝樓上朋友﹗
页:
[1]
2