几何尺寸与公差论坛------致力于产品几何量公差标准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-25, 07:47 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 caoyin大哥,一个标注尺寸与样式中定义的比较问题

caoyin大哥,一个标注尺寸与样式中定义的比较问题
www.dimcax.com

命令: (entget (car (entsel)) '("acad"))
选择对象: ((-1 . <图元名: 7ef4fe08>) (0 . "dimension") (330 . <图元名:
7ef4fd08>) (5 . "41") (100 . "acdbentity") (67 . 0) (410 . "model") (8 . "0")
(100 . "acdbdimension") (2 . "*d3") (10 324.289 149.057 0.0) (11 246.493
150.932 0.0) (12 0.0 0.0 0.0) (70 . 32) (1 . "") (71 . 5) (72 . 1) (41 . 1.0)
(42 . 155.592) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210 0.0 0.0 1.0) (3
. "iso-25") (100 . "acdbaligneddimension") (13 168.697 113.952 0.0) (14 324.289
113.952 0.0) (15 0.0 0.0 0.0) (16 0.0 0.0 0.0) (40 . 0.0) (50 . 0.0) (100 .
"acdbrotateddimension") (-3 ("acad" (1000 . "dstyle") (1002 . "{") (1070 . 343)
(1005 . "3b") (1070 . 173) (1070 . 1) (1002 . "}"))))
caoyin大哥,上面是我在特征中改了一个尺寸的第一个箭头变成我的定义的一个箭头来的,,我也看出来啦
(1070 . 343) (1005 . "3b")中"3b"是代表了我这个箭头的来的,caoyin大哥,我就是想知道一下,反过来怎么样知道"3b"就是代表我的这个箭头,还有别的用户箭头又是多少呢,这个在那查的呀,,如果是cad自带的箭头,我就会知道的呢,帮帮我呀"。caoyin大哥
d
3dimpost
4dimapost
5dimblk(已废弃,现在为对象 id)
6dimblk1(已废弃,现在为对象 id)
7dimblk2(已废弃,现在为对象 id)
40dimscale
41dimasz
42dimexo
43dimdli
44dimexe
45dimrnd
46dimdle
47dimtp
48dimtm
140dimtxt
141dimcen
142dimtsz
143dimaltf
144dimlfac
145dimtvp
146dimtfac
147dimgap
148dimaltrnd
71dimtol
72dimlim
73dimtih
74dimtoh
75dimse1
76dimse2
77dimtad
78dimzin
79dimazin
170dimalt
171dimaltd
172dimtofl
173dimsah
174dimtix
175dimsoxd
176dimclrd
177dimclre
178dimclrt
179dimadec
270dimunit(已废弃,现在使用 dimlunit 和 dimfrac)
271dimdec
272dimtdec
273dimaltu
274dimalttd
275dimaunit
276dimfrac
277dimlunit
278dimdsep
279dimtmove
280dimjust
281dimsd1
282dimsd2
283dimtolj
284dimtzin
285dimaltz
286dimalttz
287dimfit(已废弃,现在使用 dimatfit 和 dimtmove)
288dimupt
289dimatfit
340dimtxsty(参照的 style 的句柄)
341dimldrblk(参照的 block 的句柄)
342dimblk(参照的 block 的句柄)
343dimblk1(参照的 block 的句柄)
344dimblk2(参照的 block 的句柄)
371dimlwd(线宽枚举值)
372dimlwe(线宽枚举值)
d
caoyin大哥,我把定义的箭头块插了两三次,每次看到的句柄都不相同,其实我只是想知道我打开别人的dwg图时,用上面的代码,查出-3组码内容后,我想知道343或344组码的内容到底代表着是哪一个用户定义的箭头块,然后我又在命令行中输入dimblk1或dimblk2或dimblk后,我要输入这个定义箭头块的名称字符串,回车就可以改变,这就是我想要达到的目的 caoyin大哥再帮帮我,谢谢
d
(setq a (vlax-ename->vla-object (car(entsel))))
(vla-put-arrowhead1block a "块名")
(vla-put-arrowhead2block a "块名")
d
在caoyin大哥的帮助下,已实现我的梦想啦,我想得到的程序,现附上代码供参考
(defun c:caoyin (/ value ena lst dstyle lst2 blkname object cla objcolor blk1 blk2 cmd)
(vl-load-com)
(cmdbe)
(setq value '(3 "dimpost" 4 "dimapost" 40 "dimscale" 41 "dimasz" 42 "dimexo" 43 "dimdli" 44 "dimexe" 45 "dimrnd" 46 "dimdle" 47 "dimtp" 48
"dimtm" 140 "dimtxt" 141 "dimcen" 142 "dimtsz" 143 "dimaltf" 144 "dimlfac" 145 "dimtvp" 146 "dimtfac" 147 "dimgap" 148 "dimaltrnd" 69
"dimtfill" 70 "dimtfillclr" 71 "dimtol" 72 "dimlim" 73 "dimtih" 74 "dimtoh" 75 "dimse1" 76 "dimse2" 77 "dimtad" 78 "dimzin" 79 "dimazin" 170
"dimalt" 171 "dimaltd" 172 "dimtofl" 173 "dimsah" 174 "dimtix" 175 "dimsoxd" 176 "dimclrd" 177 "dimclre" 178 "dimclrt" 179 "dimadec" 271
"dimdec" 272 "dimtdec" 273 "dimaltu" 274 "dimalttd" 275 "dimaunit" 276 "dimfrac" 277 "dimlunit" 278 "dimdsep" 279 "dimtmove" 280 "dimjust"
281 "dimsd1" 282 "dimsd2" 283 "dimtolj" 284 "dimtzin" 285 "dimaltz" 286 "dimalttz" 288 "dimupt" 289 "dimatfit" 340 "dimtxsty" 341 "dimldrblk"
345 "dimltype" 346 "dimltex1" 347 "dimltex2" 371 "dimlwd" 372 "dimlwe"))
(setq ena (ssname (ssget '((0 . "dimension"))) 0))
(setq lst (entget ena '("acad")) dstyle (dxf 3 lst))
(command "-dimstyle" "r" dstyle)
(setq lst2 (tblsearch "dimstyle" dstyle) blkname (dxf 5 lst2))
(setq object (vlax-ename->vla-object ena))
(setq cla (vla-get-layer object)) (setvar "clayer" cla)
(setq objcolor (vla-get-color object))
(cond
((= objcolor 256) (setq objcolor "bylayer"))
((= objcolor 0) (setq objcolor "byblock"))
)
(command "color" objcolor)
(setq blk1 (vla-get-arrowhead1block object) blk2 (vla-get-arrowhead2block object))
(if (/= blkname blk1 blk2) (command "dimblk1" blk1 "dimblk2" blk2))
(if (/= (assoc -3 lst) nil)
(progn
(setq lst (ko-get->list-342-343-344 (ko-get->list-3 lst)))
(while (car lst)
(setq cmd (car2 (member (car (car lst)) value)))
(cond
((= (car (car lst)) 173) (command cmd "on"))
((= (car (car lst)) 340) (command cmd (vla-get-textstyle object)))
((= (car (car lst)) 345) (command cmd (vlax-get-property object 'dimensionlinetype)))
((= (car (car lst)) 346) (command cmd (vlax-get-property object 'extline1linetype)))
((= (car (car lst)) 347) (command cmd (vlax-get-property object 'extline2linetype)))
(t (command cmd (cdr (car lst))))
)
(setq lst (cdr lst))
)
)
)
(cmde)
(princ)
)
d
好贴。。。顶起来。。
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


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

高级搜索
显示模式

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

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



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


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