![]() |
用vc开发solidworks的问题
你好:
非常感谢能得到您的帮助,我solidworks二次开发才刚刚入门,现在有个问题是,我以前是在一个台式机上做的插件,但是我把这个插件移植到笔记本上的时候,这个插件就是无法跳出菜单来,提示"插件无法装入,该不是有效插件或其一个组件丢失",这个是什么原因呢?是不是我哪里没有设置好,我用的solidworks是2006sp4.1的,这个dll文件是用ATL COM向导生成的. |
回复: 用vc开发solidworks的问题
你好,谢谢的的答复.
我有如下的问题(详细见附件) 1.我用的solidworks的版本是2006SP4.1的,在我的函数ApiBond()里执行到画草图命令,如下的语句的时候,就会跳出来附件中的错误,但是点忽略就可以运行. pModelDoc->ICreateArc2(0,0,0, 0,0.01,0, 0,-0.01,0, 1,&retval2); pModelDoc->ICreateLine2(0,-0.01,0, 0.04,-0.01,0,&retval2); pModelDoc->ICreateArc2(0.04,0,0, 0.04,-0.01,0, 0.04,0.01,0, 1,&retval2); pModelDoc->ICreateLine2(0.04,0.01,0, 0,0.01,0, &retval2); >你可以这么用
ISketchSegment * retval2;
pModelDoc->ICreateArc2(0,0,0, 0,0.01,0, 0,-0.01,0, 1,&retval2);
还可以这么写
CComPtr <ISketchSegment> retval2;
pModelDoc->ICreateArc2(0,0,0, 0,0.01,0, 0,-0.01,0, 1,&retval2);
retval2.Release();
PS:智能指针做参数传递,尽量避免。
2.还有这两个语句有什么区别呢? pmodelDocExt->SelectByID2(L"前视",L"PLANE",0,0,0,false,0,NULL,0,&retval); pmodelDocExt->SelectByID2(_T("前视"),_T("PLANE"),0,0,0,false,0,NULL,0,&retval); >接口发生了变化,SolidWorks API提供的接口不太稳定,SW 2006 的SelectByID2要求输入一个(BSTR)类型值,如,L"前视",具体你可参考SW API帮助文件里的Example。 3.solidworks自带的焊接符号标注的对话框,但是不符合国标要求,如果我想在它的基础上修改这个对话框的功能,我需要从哪里入手,不知道您有否做过类似的程序。
>你的需求若是增加符合国标要求的焊接符号,我给您的建议是:
1)找到SW的符号库。
2)分层设计,创建中国国标库以及创建符合中国国标的焊接符号。(一般来说,符号是以单独的文件存在的,在CAD中符号就相当于一张小图纸的地位。CAD软件都提供有使用用户自定义符号的模块,没留意的话,那就查查帮助吧!你得先熟悉这个流程,然后你可以从两种方式中选择其一,一种是符号文件可以先用SW手工创建并保存,另一种是用程序自动创建并保存)
3)将自定义的符号添加到焊接符号标注对话框。
PS: 不符号国标要求,这句话我不赞同。标准的发展趋势告诉我,标准是人们用来方便沟通产品设计的产物,应该没有国家界线。不同国家都搞自己的一套标准,本身就没有多大的意思,就象不同的国家说不同的语言一样,总体上沟通是极其困难的,这与标准的初衷背道而驰。
|
所有的时间均为北京时间。 现在的时间是 01:52 PM. |