[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>) 用 dxf66 判断是否有属性,有才改 请<A name=54246><FONT color=#0000ff><B>无痕</B></FONT></A>先生给出dxf66的源码格式,或干脆帮人帮到底,给出完整的修改码,在此,本人不胜感激。 (setq ss1(ssget "X" (list (cons 0 "INSERT") '(66 . 1))))<BR>
页:
[1]