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


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


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-13, 02:22 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】sketchblockinstance set name problem

sketchblockinstance set name problem
hi,
i am trying to set the name of a sketchblockinstance created from a sketchblockdefinition that is loaded from a block file using makesketchblockfromfile.
when i set the name it also changes the name of the block definition and all the previous instances created from the definition.
here is an example:
swblockdef = swsketchmgr.makesketchblockfromfile(newposition, block_path, true, 1, 0)
vblockinst = swblockdef.getinstances
swblockinst = vblockinst(swblockdef.getinstancecount - 1)
swblockinst.name = instance_name
is there any way to change the name of an instance with out changing the definition name and other instances created from that definition?
any help would be greatly appreciated!
thanks!
edited: 05/29/2008 at 09:50 pm by david mernin
if you are loading/making a block from a file, you then need to insert an instance first.
dim npt(2) as double
dim vpt as object
dim swmathutil as mathutility
dim swmathpoint as mathpoint
' not sure if you will need set here or not, so try it with and without
set swmathutil = swapp.getmathutility()
' define insertion point
npt(0) = 0.0 / 1000.0
npt(1) = 0.0 / 1000.0
npt(2) = 0.0
vpt = npt
swmathpoint = swmathutil.createpoint(vpt)
swblockdef = swsketchmgr.makesketchblockfromfile(newposition, block_path, true, 1, 0)
swblockinst = swsketchmgr.insertsketchblockinstance(swblockdef, swmathpoint, 0, 0)
swblockinst.name = instance_name
luke,
how do you rename a blockinst created from swsketchmgr.makesketchblockfromselected? all elements get turned into a block but the swblockinst.name = blkitem1 doesn't work. using this for sketch into block.
set swblockdef = swsketchmgr.makesketchblockfromselected(nothing)
swblockinst.name = blkitem1
cadcam systems analyst
-solidworks office premium 2009 sp3.0
-solidworks simulation premium 2009 sp3.0
-solidworks flow simulation 2009 sp3.0
-2 cpu (fx-62), 2.0 gb of ram
-window xp pro sp2
-nvidia geforce 7950 gx2 (512mb) 6.14.11.6921
i figured it out . you do have to have an instance inserted to be renamed even if you create it on the fly. go figure. this worked.
set swblockdef = swsketchmgr.makesketchblockfromselected(nothing)
set swblockinst = swsketchmgr.insertsketchblockinstance(swblockdef, swmathpoint, 1, 0)
swblockinst.name = blkitem1
cadcam systems analyst
-solidworks office premium 2009 sp3.0
-solidworks simulation premium 2009 sp3.0
-solidworks flow simulation 2009 sp3.0
-2 cpu (fx-62), 2.0 gb of ram
-window xp pro sp2
-nvidia geforce 7950 gx2 (512mb) 6.14.11.6921
i found a quick and dirty way to rename and get rid of that instance that was created.
' create block definition
' define insertion point
inptb(0) = 1#: inptb(1) = 1#: inptb(2) = 0#
ivptb = inptb
set swmathpoint = swmathutil.createpoint(inptb)
set swblockdef = swsketchmgr.makesketchblockfromselected(nothing) ' create block
blockval = swblockinst.select(false, nothing)
set swblockinst = swselmgr.getselectedobject6(1, -1)
swblockinst.name = blkitem1 ' rename block
swmodeldocext.deleteselection2 (true) ' remove block instance
cadcam systems analyst
-solidworks office premium 2009 sp3.0
-solidworks simulation premium 2009 sp3.0
-solidworks flow simulation 2009 sp3.0
-2 cpu (fx-62), 2.0 gb of ram
-window xp pro sp2
-nvidia geforce 7950 gx2 (512mb) 6.14.11.6921
almost forgot, duh. you need to deselect before creation:
blockval = swselmgr.deselect2(1, -1)
' create block definition
' define insertion point
inptb(0) = 1#: inptb(1) = 1#: inptb(2) = 0#
ivptb = inptb
set swmathpoint = swmathutil.createpoint(inptb)
set swblockdef = swsketchmgr.makesketchblockfromselected(nothing) ' create block
blockval = swblockinst.select(true, nothing) '<---also set to true not false
set swblockinst = swselmgr.getselectedobject6(1, -1)
swblockinst.name = blkitem1 ' rename block
swmodeldocext.deleteselection2 (true) ' remove block instance
cadcam systems analyst
-solidworks office premium 2009 sp3.0
-solidworks simulation premium 2009 sp3.0
-solidworks flow simulation 2009 sp3.0
-2 cpu (fx-62), 2.0 gb of ram
-window xp pro sp2
-nvidia geforce 7950 gx2 (512mb) 6.14.11.6921
edited: 09/12/2008 at 08:03 pm by william crosby
i found even a better and more reliable way. no mathpoints or mathutil required.
' create block definition
set swblockdef = swsketchmgr.makesketchblockfromselected(nothing) ' create block
set swentity = swblockdef
blockval = swentity.select4(true, nothing)
set swblockinst = swselmgr.getselectedobject6(1, -1)
swblockinst.name = blkitem2 ' rename block
swmodel.editdelete ' delete instance
cadcam systems analyst
-solidworks office premium 2009 sp3.0
-solidworks simulation premium 2009 sp3.0
-solidworks flow simulation 2009 sp3.0
-2 cpu (fx-62), 2.0 gb of ram
-window xp pro sp2
-nvidia geforce 7950 gx2 (512mb) 6.14.11.6921
quick
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


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

高级搜索
显示模式

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

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

相似的主题
主题 主题发起者 论坛 回复 最后发表
【转帖】propertymanager page problem yang686526 SolidWorks二次开发 0 2009-04-12 10:08 PM
【转帖】length width macro yang686526 SolidWorks二次开发 0 2009-04-12 09:33 PM
【转帖】inserting and mating parts in an assembly yang686526 SolidWorks二次开发 0 2009-04-12 09:28 PM
【转帖】fixed par yang686526 SolidWorks二次开发 0 2009-04-12 08:55 PM
【转帖】inserting and mating parts in an assembly yang686526 SolidWorks二次开发 0 2009-04-12 06:43 PM


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


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