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


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


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-28, 04:16 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】虚心向老顾版主等高手请教,关于修改孔径的问题!

虚心向老顾版主等高手请教,关于修改孔径的问题!
www.dimcax.com
虚心向老顾版主等高手请教,关于修改孔径的问题!
我有大批量圆的大小和形状都要修改,但其中有一些孔径很接近(如10.3,10.5,10.8,12等)
如果一个一个选很容易选错。
一、把所有直径10.3mm的圆都改为10mm的圆:
输入10mm,然后用鼠标选取10.3mm中的一个(用鼠标选择,而不是输入数值10.3),所有10.3的圆都变成10mm的了。
(我认为:把10.3改为10.0应该是在提取属性中修改的吧,而全选应该是在“工具”--“快速选择”对话框中可以选到所有直径为10.3的圆)
二、如果上面问题能解决,那么能否把圆孔改为螺钉孔?即输入螺钉孔大小如m10,然后操作跟上述一样。
三、这个就复杂些了,

插入一个块(块名为m12),然后用鼠标选取孔径10.3mm中的一个(用鼠标选择,而不是输入数值10.3),所有孔径为10.3的圆都变成块m12了。
谢谢!

图片:

下面的程序可改你的孔径
(if (not (tblsearch "layer" "1z"))
(command "layer" "n" "1z" "c" "3" "1z" "l" "center" "1z" "")
)
(if (not (tblsearch "layer" "3z"))
(command "layer" "n" "3z" "c" "3" "3z" "l" "hidden" "3z" "")
)
(if (not (tblsearch "layer" "0z"))
(command "layer" "n" "0z" "")
)
(if (not (tblsearch "layer" "2z"))
(command "layer" "n" "2z" "c" "2" "2z" "")
)
(defun c:gdj ()
(setq en (ssget "all" '((0 . "circle"))) n (sslength en) rr1 nil rr2 nil rr3 nil rr4 nil rr5 nil rr6 nil rr7 nil rr8 nil rr9 nil rr10 nil)
(setq w 0 b 1 gg nil bb nil rr nil e 1 fz1 nil fz2 nil fz3 nil fz4 nil fz5 nil fz6 nil fz7 nil fz8 nil fz9 nil fz10 nil fz nil)
(setq d1 (getreal "输入要改的直径:") d (getreal "要改成的直径:"))
(repeat n
(setq a (ssname en w) )
(setq aa (entget a))
(setq p1 (cdr (assoc 10 aa)) dd (* (cdr (assoc 40 aa)) 2.0) )
(if (= dd d1)
(progn
(setq aa (subst (cons 40 d)(assoc 40 aa) aa))
(entmod aa)
))
(setq w (+ w 1))
)
)
;;;它不是用块是用画螺纹画出来的
(defun c:gm ()
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq en (ssget "all" '((0 . "circle"))) n (sslength en) rr1 nil rr2 nil rr3 nil rr4 nil rr5 nil rr6 nil rr7 nil rr8 nil rr9 nil rr10 nil)
(setq w 0 b 1 gg nil bb nil rr nil e 1 fz1 nil fz2 nil fz3 nil fz4 nil fz5 nil fz6 nil fz7 nil fz8 nil fz9 nil fz10 nil fz nil)
(setq d1 (getreal "输入要改的直径:") d (getreal "要改成螺纹:"))
(repeat n
(setq a (ssname en w) )
(setq aa (entget a))
(setq p1 (cdr (assoc 10 aa)) dd (* (cdr (assoc 40 aa)) 2.0) )
(if (= dd d1)
(progn
(command "erase" a "")
(setq r (* d 0.5) p2 (polar p1 0 r) p3 (polar p1 (* pi 1.5) r))
(command "layer" "s" "0z" """circle" p1 "d" (* d 0.8) )
(command "layer" "s" "2z" """arc" "c" p1 p2 p3)
(setq pp1 (polar p1 0 (+ r 3)) pp2 (polar p1 pi (+ r 3)) pp3 (polar p1 (* pi 0.5) (+ r 3)) pp4 (polar p1 (* pi 1.5) (+ r 3)))
(command "layer" "s" "1z" """line" pp1 pp2 """line" pp3 pp4 "")
(command "layer" "s" "0" "")
))
(setq w (+ w 1))
)
(setvar "osmode" os)
)
gbg

谢谢老顾,虽然不是我想要的那种功能,但这种功能也很实用,不管怎样还是要感谢您!
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


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

高级搜索
显示模式

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

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



所有的时间均为北京时间。 现在的时间是 04:41 PM.


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