SolidWorks二次开发-获取工程图中注解的信息
2018-01-08 13:44
302 查看
实现功能:
获取工程图中注解信息,如上图。
VBA:
c#
“
“`
获取工程图中注解信息,如上图。
VBA:
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swModelDocExt As SldWorks.ModelDocExtension Dim swSelMgr As SldWorks.SelectionMgr Dim selGtol As SldWorks.Gtol Dim boolstatus As Boolean Dim idx As Integer Dim params As Variant ---------- Sub main() Dim swAnn As SldWorks.Annotation Dim swDraw As SldWorks.DrawingDoc Dim selGtol As SldWorks.Gtol Dim swView As SldWorks.View Dim swDispDim As SldWorks.DisplayDimension Dim swDim As SldWorks.Dimension Dim objDim As Variant Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swModelDocExt = swModel.Extension 'Set swSelMgr = swModel.SelectionManager 'Set selGtol = swSelMgr.GetSelectedObject6(1, 0) '获取被选中的注解信息时可使用 'Debug.Print "GetTextCount = " & CStr(selGtol.GetTextCount) ’个数 Set swDraw = swModel Set swView = swDraw.GetFirstView Do While Not Nothing Is swView Set swAnn = swView.GetFirstAnnotation3 Do While Not Nothing Is swAnn If swAnn.GetType = swGTol Then '形位公差的获取 Set selGtol = swAnn.GetSpecificAnnotation For idx = 0 To selGtol.GetTextCou 4000 nt - 1 Debug.Print "GetTextAtIndex(" + CStr(idx) + ") = " + selGtol.GetTextAtIndex(idx) Next idx Debug.Print " " ElseIf swAnn.GetType = swDisplayDimension Then '尺寸公差 Set swDispDim = swAnn.GetSpecificAnnotation Set swDim = swDispDim.GetDimension If InStr(swDispDim.GetText(swDimensionTextParts_e.swDimensionTextPrefix), "<C#-") Then '尺寸前缀包含圆圈编号 Debug.Print swDispDim.GetText(swDimensionTextParts_e.swDimensionTextPrefix) Debug.Print " Value= " & swDim.GetSystemValue2("") * 1000 objDim = swDim.GetToleranceValues() Debug.Print "上偏差:"; objDim(1) * 100 Debug.Print "下偏差:"; objDim(0) * 100 End If End If Set swAnn = swAnn.GetNext3 Loop Set swView = swView.GetNextView Loop End Sub
c#
“
class GetDrwInfo { ISldWorks swApp; //IModelDoc2 swModel; IDrawingDoc swDraw; SolidWorks.Interop.sldworks.View swView; public GetDrwInfo(ISldWorks iSwApp, IModelDoc2 iSwModel) { swApp = iSwApp; swDraw = (IDrawingDoc)iSwModel; } public void GetNoteInfo() { //形位公差 Gtol swGTol ; DisplayDimension swDispDim; Dimension swDim; swView = swDraw.GetFirstView(); while (swView != null) { Annotation swAnn = swView.GetFirstAnnotation2(); while (swAnn != null) { if (swAnn.GetType() == (int)swAnnotationType_e.swGTol) //形位公差 { swGTol = swAnn.GetSpecificAnnotation(); for (int idx = 0; idx < swGTol.GetTextCount(); idx++) { MessageBox.Show("形位公差 GetTextAtIndex(" + idx.ToString() + ") = " + swGTol.GetTextAtIndex(idx)); } } else if (swAnn.GetType() == (int)swAnnotationType_e.swDisplayDimension) //尺寸 { swDispDim = swAnn.GetSpecificAnnotation(); swDim = swDispDim.GetDimension(); if (swDispDim.GetText((int)swDimensionTextParts_e.swDimensionTextPrefix).Contains("<C#-")) //如果前面有编号 { MessageBox.Show(swDispDim.GetText((int)swDimensionTextParts_e.swDimensionTextPrefix)); MessageBox.Show("尺寸 Value= " + swDim.GetSystemValue2("") * 1000); object objDim = null; objDim = swDim.GetToleranceValues(); double[] dim = (double[])objDim; double upValue = dim[0] * 100; double downValue = dim[1] * 100; MessageBox.Show("上偏差:" + upValue.ToString()); MessageBox.Show("下偏差:" + downValue.ToString()); } } swAnn = swAnn.GetNext3(); } swView = swView.GetNextView(); } } }
“`
相关文章推荐
- iphone开发 获取工程plist里的信息
- mybatis拦截器打印sql且通过自定义注解获取sql开发人信息
- solidworks二次开发:获取简单零件的面信息
- SolidWorks二次开发:在程序中获取质量特征里的信息
- SolidWorks二次开发——获取工程图关联的零件路径
- Revit 二次开发获取元素的材质和外观信息以及贴图
- XMPP之ios即时通讯客户端开发-配置XMPP基本信息之工程代码(五)
- 微信公众平台开发(76) 无高级接口账号获取用户基本信息
- 微信公众平台开发 无高级接口账号获取用户基本信息
- python开发_platform_获取操作系统详细信息工具
- 微信公众平台开发文档 获取用户基本信息
- 支付宝开发平台之第三方授权登录与获取用户信息
- 微信公众平台开发文档 网页授权获取用户基本信息
- Android软件开发之获取通讯录联系人信息(二十九)
- 获取手机号码和手机运营商信息——android开发
- 微信快速开发框架V2.3--增加语音识别及网页获取用户信息(八),代码已更新至Github
- Swift获取当前项目工程的名称版本等信息
- Android软件开发之获取通讯录联系人信息
- [置顶] XMPPFrameWork IOS 开发(五)获取好友信息和添加删除好友
- 微信公众号开发之授权获取用户信息