几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(AutoLISP)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-04-26, 01:51 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 [求助]改颜色

[求助]改颜色
www.dimcax.com

(defun c:chcolor (/ col ss n)
(if (and (setq ss (ssget))
(or (setq col (acad_colordlg 7))
(and (setq col (getint "\n指定颜色索引号(0~256): "))
(<= 0 col 256)
)
)
)
(repeat (setq n (sslength ss))
(vla-put-color (vlax-ename->vla-object (ssname ss (setq n (1- n)))) col)
)
)
(princ)
)
d
楼上的大哥,能不能让它不断循环,直到获得正确有效值数才跳出!
(<= 0 col 256)这句好像没作用!
应该对所输的进行判断。对负值和在0-256范围外的值进行拒绝!
(initget 4)加了这个可以拒绝负值,但0-256的不知道怎么判断?
也不知道如何让它循环?
d
(defun c:chcolor (/ col ss n)
(if
(and (setq ss (ssget))
(progn
(setq col (acad_colordlg 7))
(while (not col)
(if (setq col (getint "\n指定颜色索引号(0~256): "))
(if (<= 0 col 256)
t
(progn (setq col nil) (princ "\n需要 0~256 的整数。"))
)
)
)
col
)
)
(repeat (setq n (sslength ss))
(vla-put-color
(vlax-ename->vla-object (ssname ss (setq n (1- n))))
col
)
)
)
(princ)
)
d
谢谢caoyin。实在太历害了!
d
刚刚认真测试了一下,还有一点小毛病。cad颜色号好像没有小数点的吧?
不知怎么让它只接爱正整数呢?用initget可以不?
d
不需要
(getint "\n指定颜色索引号(0~256): ") 你能得到小数???
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 05:21 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多