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

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   SolidWorks二次开发 (http://www.dimcax.com/hust/forumdisplay.php?f=111)
-   -   用vc开发solidworks的问题 (http://www.dimcax.com/hust/showthread.php?t=317)

huangyhg 2006-12-14 10:37 PM

用vc开发solidworks的问题
 
你好:
   非常感谢能得到您的帮助,我solidworks二次开发才刚刚入门,现在有个问题是,我以前是在一个台式机上做的插件,但是我把这个插件移植到笔记本上的时候,这个插件就是无法跳出菜单来,提示"插件无法装入,该不是有效插件或其一个组件丢失",这个是什么原因呢?是不是我哪里没有设置好,我用的solidworks是2006sp4.1的,这个dll文件是用ATL COM向导生成的.

huangyhg 2006-12-14 10:37 PM

回复: 用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.