注意:如果你有一个高度为0.0的样式,那么什么都不会做。
(defun c:txcng (/ sty stlst ht txss cnt ssl ent)
;;; get text styles
(vlax-for sty
(vla-get-textstyles
(vla-get-ActiveDocument
(vlax-get-Acad-Object)
);_get doc
);_text collection
(setq stlst (cons (vla-get-Name Sty) stlst));_style list
);_end for
;;; go thru list to change heights
(foreach item stlst
(setq ht (cdr(assoc 40 (tblsearch "Style" item))));_get original heigth
(if (> ht 0.0);_as long as no zero heigth
(progn
(setq txss (ssget "_X" (list(cons 0"mtext,text")(cons 7 item))));-get all text for that style
(if txss ;_if there is text
(progn
(setq cnt 0);_counter
(setq ssl (sslength txss));_# of items in selection set
(while (< cnt ssl)
(setq snm (ssname txss cnt));_get entity name
(setq ent (entget snm));_get entity info
(if (/=(cdr(assoc 40 ent))ht);_if heigth id not = to original style ht
(progn
(setq ent (subst (cons 40 ht) (assoc 40 ent) ent));_put in new heigth
(entmod ent);_update entity
);_progn
);_if
(setq cnt (1+ cnt));_up counter by 1
);_while
);_progn
);_if
);_progn
);_if
);_foreach
(princ)
);_defun 你好,JohnM。
你的代码真的很棒,但如果用户的系统中没有(vl load com),它就会失败。
非常感谢。
塔瓦特 哎呀,我忘了,现在是啤酒时间,所以是啤酒的错。
糟糕的巴德!糟糕的巴德!
谢谢 在这种情况下,这里还有一条鱼,希望非常有效:
(defun c:TextHeightByStyle ( / l def )
;; © Lee Mac 2010
(
(lambda ( data / x i ss e )
(while (setq x (car data))
(if (setq i -1 data (cdr data) ss
(ssget "_X"
(list
(cons 0 "TEXT,MTEXT")
(cons 7 (car x))
(cons -4 "!=") (cons 40 (cdr x))
)
)
)
(while (setq e (ssname ss (setq i (1+ i))))
(entupd
(cdr
(assoc -1
(entmod
(subst
(cons 40 (cdr x)) (assoc 40 (entget e)) (entget e)
)
)
)
)
)
)
)
)
)
(while (setq def (tblnext "STYLE" (null def)))
(setq l
(cons
(cons (cdr (assoc 2 def))
(cdr
(assoc
(if (zerop (cdr (assoc 40 def))) 42 40) def
)
)
)
l
)
)
)
)
(princ)
)
还有一个:
3
李,
我想关于如何教人钓鱼是有争议的。
学生是否可以通过以下方式更好地学习:
看到基本示例(希望有很好的文档记录或格式易于遵循)
被引导到参考材料
给出了要遵循的逻辑流程图
我想这可以归结为学生已经掌握了多少知识。我通常会从新手变成新手。否则他们就不会要求我们做一个简单的例行公事。
当我在头上看到某个东西时,我倾向于不尝试将其分解到第n个层次。如果只是稍微结束一点,那么我会花时间完全理解代码。
我的0.02美元-David 我从以下概念中学习得最快:
**看到基本示例(希望有很好的文档记录或格式易于遵循)**
这对我来说是最好的。。。。
就我的美元。02
史蒂夫 David,我明白你的观点,但我过去一直不赞成直接给出完整的解决方案,因为许多人只是盲目地接受代码——因此我尝试了一种不同的方法。然而,我更喜欢只写代码,因为要引导别人找到解决方案需要做更多的工作。
李 问题是“你的动机或目标是什么?”
是为了提高还是锻炼自己的技能?
是为了教书吗?
是为了学习吗?
是吹牛吗?
它是有益的还是慈善的?
我们来到这里的原因各不相同。
如果你认为自己被利用了,那么拒绝一个请求总是可以接受的。
因为CadTutor是一个以学习为导向的网站,我倾向于为初学者贡献一些基本的东西。这有助于保持我的技能更敏锐一点。我们可能都需要在评论方面做得更好,或者至少描述一个片段的大意,这样每个人都有机会学习。在粗糙的代码中,总是有精心制作的、嵌套得很深的、高度进化的代码片段,我们认为这是猫咪的叫声,但对一般的编码者来说是胡言乱语-大卫
史提夫,
我同意样本或片段是我在学习环境中的选择。
我通过剖析AutoCAD 9和10版附带的代码来学习。直到90年代初Compuserve出现,你才找到一个关于autocad的对等论坛。
我很羡慕今天的新手,比如这里的论坛和Afralisp。这比苦读说明书要好得多。
我的0.04美元-David 艾伦、大卫、李和约翰。。。
谢谢大家的支持,这是一次非常有益的教学,彻底解决了我的问题。
页:
1
[2]