solidworks二次开发.docx
《solidworks二次开发.docx》由会员分享,可在线阅读,更多相关《solidworks二次开发.docx(18页珍藏版)》请在冰豆网上搜索。
solidworks二次开发
1.2用VC++6.0开发SolidWorks的步骤
1.2.1SolidWorksAPISDK的安装
●SolidWorks2006APISDK的安装
步骤1:
双击api_sdk.exe文件,进入安装界面
步骤2:
单击Next按钮,选择Iaccepttheterms……,进入安装类型选择界面,如图1.9所示。
图1.9安装类型选择界面
步骤3:
在SetupType安装类型中选择Custom自定义选项,单击Next按钮,选择需要安装的文件,在此选择VisualStudio6ATLObjectWizard,如图1.10所示。
图1.10选择需要安装的文件
需要注意的是安装向导文件的路径必须和开发工具所在的路径相同,比如安装VisualStudio6ATLObjectWizard,默认路径是C:
\ProgramFiles\MicrosoftVisualStudio\Common\MSDev98\Template\ATL,需要将路径修改为本机上VC++6.0的安装位置,如图1.11所示。
图1.11修改安装路径
步骤4:
单击Next按钮,直到安装完成,如图1.12所示。
图1.12安装完成
●SolidWorks2008APISDK的安装
步骤1:
双击api_sdk.exe文件,进入安装界面,如图1.13所示
图1.13安装界面
步骤2:
单击Next按钮,确认安装路径是否正确,如图1.14所示:
图1.14确认安装路径
步骤3:
单击Install按钮,至安装完成,如图1.15所示.
图1.15安装完成
1.2.2第一个插件程序
步骤1:
新建工程
运行VC++6.0,选择【文件】|【新建】命令,如图1.16所示。
图1.16选择【新建】命令
在工程类型中选择ATLCOMAppWizard,在【工程】中输入工程名,完成后单击【确定】按钮,如图1.17所示:
图1.17输入工程名
在ATLCOMAppWizard对话框中选择DynamicLinkLibrary和SupportMFC选项。
如图1.18所示:
图1.18选项设置
确认新建工程信息无误后,单击【确定】按钮,新建工程完毕,如图1.19所示:
图1.19新建工程完毕
步骤2:
添加SolidWorksAddin对象
在工程名firstclasses上单击鼠标右键,弹出的命令中选择NewATLObject,如图1.20所示
图1.20选择NewATLObject命令
在弹出的ATLObjectWizard对话框的Category列表选项中选择SolidWorks,在Objects选项中选择SwAddin,单击Next按钮,如图1.21所示。
图1.21选择SwAddin类型
在ATLObjectWizard属性设置对话框Names标签的ShortName文本框中输入SwAddinObject的名称,如图1.22所示
图1.22输入SwAddinObject名称
ATLObjectWizard属性设置对话框的Attributes属性页是基本的COM属性设置,如图1.23所示:
图1.23属性设置对话框
这里选择默认设置即可,进入下一个属性设置。
ATLObjectWizard属性设置对话框的SolidWorksAddIn对象属性设置,如图1.24所示:
图1.24SolidWorksAddIn属性设置
为了使第一个程序尽可能简单,先按默认设置。
单击ATLObjectWizard对话框上的【确定】按钮,VisualC++6.0将生成一个SwAddIn对象,如图1.25所示。
可以在C1assView中看到,向导自动生成了一个名为Iswobj的接口,该接口为插件与SolidWorks2008进行通信的重要接口。
图1.25Iswobj接口
步骤3:
添加自定义方法:
在ClassView页面中,右击Iswobj类,选择AddMethod命令,如图1.26所示
图1.26选择AddMethod命令
在【N方法名】文本栏中输入“firstmethod”,单击【确定】按钮,如图1.27所示。
图1.27输入方法名
打开swobj.cpp文件,在swobj.cpp文件中可以看到向导自动生成如下代码:
STDMETHODIMPCswobj:
:
firstmethod()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
//TODO:
Addyourimplementationcodehere
returnS_OK;
}
在其中添加一行代码AfxMessageBox("first"),如图1.28所示:
STDMETHODIMPCswobj:
:
firstmethod()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
//TODO:
Addyourimplementationcodehere
AfxMessageBox("first");/////添加的代码,该行代码的作用是弹出一个消息框
returnS_OK;
}
图1.28添加的代码
步骤4:
添加自定义命令:
在资源管理器中,双击StringTable,如图1.29所示
图1.29双击StringTable
双击StringTable中空白行,在表中添加String资源,如图1.30所示:
图1.30添加String资源
添加“IDS_FIRST_message_ITEMmessage@First”,该项为命令项显示的内容。
如图1.31所示:
图1.31添加命令项显示内容
添加“IDS_FIRST_message_METHODfirstmethod”,该项为命令项的响应函数名。
如图1.32所示:
图1.32添加命令项响应函数名
添加“IDS_FIRST_message_HINTdisplayamessagebox”,该项为命令项显示的提示信息。
如图1.33所示:
图1.33添加命令项提示信息
添加三个String资源后,StringTable如图1.34所示:
图1.34添加的字符串
步骤5:
在swobj.cpp文件中voidCswobj:
:
AddMenus()函数添加如下代码,如图1.35所示:
position=-1;
menu.LoadString(IDS_FIRST_message_ITEM);
method.LoadString(IDS_FIRST_message_METHOD);
hint.LoadString(IDS_FIRST_message_HINT);
m_iSldWorks->AddMenuItem2(type,m_swCookie,menu,position,method,update,hint,&ok);
图1.35添加的命令项
添加完成后的代码如下所示:
//Addmenuforpartframe
type=swDocPART;
position=5;
menu.LoadString(IDS_FIRST_MENU);
m_iSldWorks->AddMenu(type,menu,position,&retval);
position=-1;
menu.LoadString(IDS_FIRST_START_NOTEPAD_ITEM);
method.LoadString(IDS_FIRST_START_NOTEPAD_METHOD);
hint.LoadString(IDS_FIRST_START_NOTEPAD_HINT);
m_iSldWorks->AddMenuItem2(type,m_swCookie,menu,position,method,update,hint,&ok);
position=-1;
menu.LoadString(IDS_FIRST_message_ITEM);
method.LoadString(IDS_FIRST_message_METHOD);
hint.LoadString(IDS_FIRST_message_HINT);
m_iSldWorks->AddMenuItem2(type,m_swCookie,menu,position,method,update,hint,&ok);
步骤6:
.编译并链接该工程:
打开swobj.h文件,将向导自动生成的代码:
#import"sldworks.tlb"raw_interfaces_only,raw_native_types,no_namespace,named_guids
#import"swpublished.tlb"raw_interfaces_only,raw_native_types,no_namespace,named_guids
#import"swconst.tlb"raw_interfaces_only,raw_native_types,no_namespace,named_guids
如图1.36所示:
图1.36自动添加的库文件
改为如下所示代码:
#import"C:
\\SW\\sldworks.tlb"raw_interfaces_only,raw_native_types,no_namespace,named_guids
#import"C:
\\SW\\swpublished.tlb"raw_interfaces_only,raw_native_types,no_namespace,named_guids
#import"C:
\\SW\\swconst.tlb"raw_interfaces_only,raw_native_types,no_namespace,named_guids
其中C:
\\SW\\为本机上SolidWorks的安装路径。
如图1.37所示:
图1.37修改的库文件
打开Part.h文件,在下图中作同样的替换,如图1.38所示
图1.38自动添加的库文件
更改后的代码如图1.39所示:
图1.39修改的库文件
选择【编译】|【重建全部】命令,如图1.40所示:
图1.40编译并链接项目
步骤7:
运行SolidWorks2008,打开零件model\\1\\pressure_plate.sldprt,选择First|message命令,如图1.41所示
图1.41选择message命令
弹出消息框,如图1.42所示:
图1.42弹出消息框