caoyin 发表于 2008-9-23 09:49:00
<p>(defun c:chColor (/ col ss n)<br/> (if (and (setq ss (ssget))<br/> (or (setq col (acad_colordlg 7))<br/> (and (setq col (getint "\n指定颜色索引号(0~256): "))<br/> (<= 0 col 256)<br/> )<br/> )<br/> )<br/> (repeat (setq n (sslength ss))<br/> (vla-put-color (vlax-ename->vla-object (ssname ss (setq n (1- n)))) col)<br/> )<br/> )<br/> (princ)<br/>)</p>120120 发表于 2008-9-23 18:43:00
<p>楼上的大哥,能不能让它不断循环,直到获得正确有效值数才跳出!</p><p>(<= 0 col 256)这句好像没作用!</p><p>应该对所输的进行判断。对负值和在0-256范围外的值进行拒绝!</p><p>(initget 4)加了这个可以拒绝负值,但0-256的不知道怎么判断?</p><p>也不知道如何让它循环?</p>caoyin 发表于 2008-9-24 09:17:00
本帖最后由 作者 于 2008-9-24 12:48:25 编辑 <br /><br /> (defun c:chColor (/ col ss n)<br/> (if<br/> (and (setq ss (ssget))<br/> (progn<br/> (setq col (acad_colordlg 7))<br/> (while (not col)<br/> (if (setq col (getint "\n指定颜色索引号(0~256): "))<br/> (if (<= 0 col 256)<br/> T<br/> (progn (setq col nil) (princ "\n需要 0~256 的整数。"))<br/> )<br/> )<br/> )<br/> col<br/> )<br/> )<br/> (repeat (setq n (sslength ss))<br/> (vla-put-color<br/> (vlax-ename->vla-object (ssname ss (setq n (1- n))))<br/> col<br/> )<br/> )<br/> )<br/> (princ)<br/>)120120 发表于 2008-9-24 12:09:00
谢谢CAOYIN。实在太历害了!120120 发表于 2008-9-24 12:38:00
<p>刚刚认真测试了一下,还有一点小毛病。CAD颜色号好像没有小数点的吧?</p><p>不知怎么让它只接爱正整数呢?用INITGET可以不?</p>caoyin 发表于 2008-9-24 12:50:00
<p>不需要</p><p>(getint "\n指定颜色索引号(0~256): ") 你能得到小数???</p>120120 发表于 2008-9-24 20:26:00
<p>自已搞错了。谢谢CAOYIN!</p><p></p>匆匆肥马 发表于 2019-10-22 10:09:18
caoyin 发表于 2008-9-22 16:00;;; command并不一定慢!(defun c:chColor (/ col ss n) (if (and (setq ss (ssget)) &nb ...
请请教一下,选择对象为空时,不结束命令,而是直接弹出颜色选定窗口。怎么改啊?
2548572928 发表于 2021-12-10 10:05:10
caoyin 发表于 2008-9-24 09:17本帖最后由 作者 于 2008-9-24 12:48:25 编辑(defun c:chColor (/ col ss n) (if &nbs ...
大神 厉害:handshake
页:
1
[2]