Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim bool AsBoolean'是否保存成功 Dim Options AsInteger'保存选项,一般为1 Dim Errors AsLong'报错代码 Dim Warnings AsLong'警告代码
Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swModelDocExt As ModelDocExtension Dim swCustProp As CustomPropertyManager Dim FieldName AsString'属性名 Dim UseCached AsBoolean'是否用缓存,一般为False Dim ValOut AsString'属性值,如果为公式,则是公式 Dim ResolvedValOut AsString'属性值,如果为公式,则是公式计算出的值 Dim bool AsBoolean'该方法返回是否成功
Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swModelDocExt = swModel.Extension
'为空表示自定义属性,其他则是对应的配置名下的属性 Set swCustProp = swModelDocExt.CustomPropertyManager("")
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 '返回的对象 Dim FieldName AsString'文件地址 Dim Type AsInteger'文件类型,零件为1,装配体为2,工程图为3 Dim Options AsInteger'一般为0 Dim Configuration AsString'配置名,无特殊要求为"" Dim Errors AsInteger'报错代码 Dim Warnings AsInteger'警告代码
Set swModel = swApp.OpenDoc6(FileName, Type, Options, Configuration, Errors, Warnings)
这里需要注意警告代码,因为如果一个文件已经在内存中存在了,那么就无法打开它了(SolidWorks 底层同名文件限制)。此时 Warnings 会返回 128,但是再注意,如果一个文件既是已打开状态,又是只读文件,那么此时返回的是 130。因为只读返回 2,已打开返回 128,根据 SolidWorks API Bit 掩码进位的规则,返回值为所有状态之和 130。所以判断文件是否已打开,最好不要使用 Warnings=128,而是用十六进制判断倒数第二位是否为 8。
如果一个文件处于已打开状态,那么要想 “打开” 它,需要改用以下 ActivateDoc2 方法。
1 2 3 4 5 6 7 8 9 10
OptionExplicit
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 '返回的对象 Dim Name AsString'文件名,建议加上后缀名以区分工程图 Dim Silent AsBoolean'是否静默打开,一般为False Dim Errors AsInteger'报错代码
Set swModel = swApp.ActivateDoc2(Name, Silent, Errors)
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim ConfigMgr As ConfigurationManager
Dim Name AsString'配置名 Dim Comment AsString'评论,一般为"" Dim AlternateName AsString'替代名,一般为"" Dim Options AsInteger'选项,一般为False Dim ParentConfigName AsString'父配置名,一般为"" Dim Description AsString'描述,一般为"" Dim Rebuild AsBoolean'是否重建,建议为True Dim swDerivConf As SldWorks.Configuration '返回的对象
Set ConfigMgr = swModel.ConfigurationManager '新建配置 Set swDerivConf = ConfigMgr.AddConfiguration2(Name, Comment, AlternateName, Options, ParentConfigName, Description, Rebuild)