xhpei1 发表于 2004-9-23 18:25:00

[LISP]请高手指点迷津(附属性块修改源码)

我在lockmyeye和meflying两大高手指点下,编写了批量改变属性块中文字高度和宽度比例的程序,并将其放到ACAD2004.lsp中。在对图纸批量处理时,有属性块的图纸正常,但无属性块的图纸就报错(参数类型错误: lentityp),找不到解决办法。<BR>敬请各位高手指点。



(defun ModTxt(ent H / ent blkname ents h1 bl)<BR>       (while (/= (cdr (assoc 0 ents)) "SEQEND") <BR>                       (if (or<BR>                                                                       (= (cdr (assoc 0 ents)) "ATTRIB") <BR>                                                       ) <BR>                               (progn<BR>                                                               (setq h1 (cdr (assoc 40 ents)))<BR>                                                               (setq bl (cdr (assoc 41 ents)))


       (setq ents (subst (cons 41 h) (assoc 41 ents) ents))<BR>               (entmod ents)<BR>                                                               (setq ents (subst (cons 40 (* h1 bl)) (assoc 40 ents) ents))<BR>               (entmod ents)<BR>                                       )<BR>                       )<BR>                       (setq ent (entnext ent))<BR>                       (setq ents (entget ent))<BR>       )<BR>)



;主程序


(defun blkatt(/ olderr ss1 n nn ent name oldlist conlist newlist olds oldh olds1 sty7)<BR>               (setq ss1(ssget "X" (list (cons 0 "INSERT"))))<BR>               (if (/= ss1 nil)<BR>                                       (progn<BR>       (setq n 0 nn (sslength ss1) olds '1.01 )<BR>       (repeat nn<BR>                                                                                                       (setq name(ssname ss1 n))<BR>                                                                                                                       (ModTxt name 1)                                                       <BR>                                                                                                                       (setq n(1+ n))<BR>       )<BR>                                               )<BR>                       )       


       (command "_.regen")<BR>)

无痕 发表于 2004-9-23 18:52:00

用 dxf66 判断是否有属性,有才改

xhpei1 发表于 2004-9-23 19:02:00

请<A name=54246><FONT color=#0000ff><B>无痕</B></FONT></A>先生给出dxf66的源码格式,或干脆帮人帮到底,给出完整的修改码,在此,本人不胜感激。

龙龙仔 发表于 2004-9-24 07:57:00

(setq ss1(ssget "X" (list (cons 0 "INSERT") '(66 . 1))))<BR>
页: [1]
查看完整版本: [LISP]请高手指点迷津(附属性块修改源码)