几何尺寸与公差论坛------致力于产品几何量公差标准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, 10:13 AM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】declare sw documen

declare sw document
i want to write an addin which can be run on both sw part and assembly files
how to dim a document for both part and assembly? i guess i don't need to assign 2 object variables, one for partdoc and another for assemblydoc
thx, chris
solidworks 2007 (office pro.) sp5.0
testing solidworks 2009 (pro) sp0.0
dell precision t3400
2 cpu (8500) 3.16 ghz, 3.25 gb of ram
window xp pro sp2
nvidia fx 570 6.14.11.6262
hi chris,
it depends on what you are actually trying to do with the part or assembly as both are of object type modeldoc2 which will have common methods and properties however if it is something more specific to a part only or an assembly only then you will need to access the specific methods and properties. below is two sample bits of code that might help. i only write macros as a hobby so the code may not be perfect, but it works. this is how i would normally begin a macro. copy and paste the samples into a new macro in the sw vba ide and step through the code.
hope it helps.
declan.
'example if you need to do something specific to a document type
sub main()
dim swapp as sldworks.sldworks
dim swmodel as sldworks.modeldoc2
dim swpart as sldworks.partdoc
dim swassy as sldworks.assemblydoc
set swapp = getobject("", "sldworks.application")
set swmodel = swapp.activedoc
if not swmodel is nothing then
select case swmodel.gettype
case swdocdrawing
'do nothing
case swdocassembly
set swmodel = swassy
msgbox "assembly file is loaded!", vbinformation, "solidworks"
case swdocpart
set swmodel = swpart
msgbox "part file is loaded!", vbinformation, "solidworks"
end select
else
msgbox "no model loaded!", vbinformation, "solidworks"
end
end if
set swapp = nothing
set swmodel = nothing
end sub
'example if you need to do something common to a document type
sub main2()
dim swapp as sldworks.sldworks
dim swmodel as sldworks.modeldoc2
dim swpart as sldworks.partdoc
dim swassy as sldworks.assemblydoc
set swapp = getobject("", "sldworks.application")
set swmodel = swapp.activedoc
if not swmodel is nothing then
select case swmodel.gettype
case swdocdrawing
msgbox "please open a solidworks part or assembly!", vbinformation, "solidworks"
end
case swdocassembly, swdocpart
'do something
msgbox "assembly or part file is loaded!", vbinformation, "solidworks"
end select
else
msgbox "no model loaded!", vbinformation, "solidworks"
end
end if
set swapp = nothing
set swmodel = nothing
end sub
thank you for the reply
just did some search and it should be modeldoc2 - i wish it can be named something like swdoc because drawingdoc is not really a model?
correct me if i'm wrong here?
thx, chris
solidworks 2007 (office pro.) sp5.0
testing solidworks 2009 (pro) sp0.0
dell precision t3400
2 cpu (8500) 3.16 ghz, 3.25 gb of ram
window xp pro sp2
nvidia fx 570 6.14.11.6262
edited: 06/19/2008 at 11:30 am by chris ch
a model is a representative form or hypothetical description of a complex entity, so the name is semantically correct, although yes it is a bit deceiving.
as for the modeldoc2, drawingdoc, assemblydoc and partdoc problem, vba explicitly converts any object of modeldoc2 to all 4 types when attempting to call any methods, so you could say:
dim mod as modeldoc2
mod.edittemplate
and it would work fine; however .net languages and most others will not explicitly convert from one to the next so you must implicitly convert them using (type)variable for c#, and ctype(variable, type) for vb.net for example
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


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

高级搜索
显示模式

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

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

相似的主题
主题 主题发起者 论坛 回复 最后发表
【转帖】blocks-autocad to sw yang686526 SolidWorks二次开发 0 2009-04-13 09:18 AM
there are three terrible questions on SW translator as below huangyhg SolidWorks二次开发 3 2007-09-04 01:38 PM
How to start SW 2007 or SW 20006 via SW API? If I have two different versions of SW yogy SolidWorks二次开发 1 2007-05-21 09:19 AM


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


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