|
楼主 |
发表于 2006-12-14 22:37:45
|
显示全部楼层
回复: 用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"LANE",0,0,0,false,0,NULL,0,&retval);
pmodelDocExt->SelectByID2(_T("前视"),_T("LANE"),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: 不符号国标要求,这句话我不赞同。标准的发展趋势告诉我,标准是人们用来方便沟通产品设计的产物,应该没有国家界线。不同国家都搞自己的一套标准,本身就没有多大的意思,就象不同的国家说不同的语言一样,总体上沟通是极其困难的,这与标准的初衷背道而驰。
|
|