INTELLIGENT WORK FORUMS FOR ENGINEERING PROFESSIONALS
Come Join Us!
- Talk With Other Members
- Be Notified Of Responses
To Your Posts
- Keyword Search
- Turn Off Ad Banners
- One-Click Access To Your
Favorite Forums
- Automated Signatures
On Your Posts
- Best Of All, It's Free!
*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.
Partner With Us!
"Best Of Breed" Forums Add Stickiness To Your Site

(Download This Button Today!)
Member Feedback
"...Your site is one of the cleanest and BEST forums that I
have seen. I have sent quite a few people your way. Keep up
the good work!!!"
Geography
Where in the world do Eng-Tips members come from?
|
SolidWorks 3D CAD products FAQ
|
API and Macros
|
Count Sketch Segments in Active Sketch
Posted: 9 Nov 04 (Edited 19 Nov 04)
|
This macro can help you trouble shoot some performance related problems you may have with certain models. By being able to count the number of sketch segments in any active sketch, you can determine if a particular sketch might have too many sketch segments. Currently there is no defined "upper limit" to the number of sketch segments, but a good rule of thumb would be to have no more than 300.
This macro was written in SW03, if you have problems with an older/newer version of SolidWorks, please let me know.
CODEOption Explicit
Public Enum swSkSegments_e swSketchLINE = 0 swSketchARC = 1 swSketchELLIPSE = 2 swSketchSPLINE = 3 swSketchTEXT = 4 swSketchPARABOLA = 5 End Enum
Dim Total As Integer
Sub main() Dim sSkSegmentsName(5) As String Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swSelMgr As SldWorks.SelectionMgr Dim swFeat As SldWorks.feature Dim swSketch As SldWorks.sketch Dim vSkSegArr As Variant Dim vSkSeg As Variant Dim swSkSeg As SldWorks.SketchSegment Dim swSkLine As SldWorks.SketchLine Dim swSkArc As SldWorks.SketchArc Dim swSkEllipse As SldWorks.SketchEllipse Dim swSkSpline As SldWorks.SketchSpline Dim swSkText As SldWorks.SketchText Dim swSkParabola As SldWorks.SketchParabola Dim vID As Variant Dim i As Long Dim bRet As Boolean Total = 0 On Error GoTo huboalgo Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager Set swFeat = swSelMgr.GetSelectedObject4(1) Set swSketch = swFeat.GetSpecificFeature vSkSegArr = swSketch.GetSketchSegments For Each vSkSeg In vSkSegArr Set swSkSeg = vSkSeg Total = Total + 1 Next vSkSeg MsgBox "Total of segments: " & Total, vbInformation, "SEGMENTS COUNT" GoTo THEEND huboalgo: MsgBox "Please select an sketch", vbCritical, "MACRO ERROR" THEEND: End Sub An small update, this has been converted to an Add-In. You can find it at http://www.esoxrepublic.com/freeware/
Many thanks to TheTick for the conversion to an Add-In. |
Back to SolidWorks 3D CAD products FAQ Index
Back to SolidWorks 3D CAD products Forum
My FAQ Archive
Email This FAQ To A Friend |
|
 |
|