Pomocí iLogic pravidla detekujícího konstrukční 3D prvky Tažení (Sweep) můžete posčítat celkovou délku všech ukázaných prvků tohoto typu ve vašem 3D modelu (IPT součásti). Lze využít např. na zjištění celkové délky modelovaných potrubních prvků, drátů, hadic, profilových nosníků a dalších tažených prvků.
Postupné ukazování s průběžným zobrazováním kumulativní délky ukončete stiskem [ESC]. Poté je zobrazen délkový údaj (v aktuálních délkových jednotkách dokumentu) pro zkopírování.
oPrecision = 4
Dim TotalLength As Double
Dim oSweep As SweepFeature
Dim oDoc = ThisDoc.Document
Dim oDef As PartComponentDefinition
oDef = oDoc.ComponentDefinition
Dim oHighLight As Inventor.HighlightSet
oHighLight = oDoc.CreateHighlightSet
On Error GoTo ExitRule
oUOM = oDoc.UnitsOfMeasure
oLUnits = oUOM.LengthUnits
oUnitString = oUOM.GetStringFromType(oLUnits)
Dim cnt As Integer = 0
Dim oPrompt As String
oPrompt = "Select Sweeps, <ESC> to end..."
While True 'loop
selectF = ThisApplication.CommandManager.Pick _
(kPartFeatureFilter, oPrompt)
If IsNothing(selectF) Then Exit While
If TypeOf selectF Is SweepFeature Then
oSweep = selectF
Dim oProfileOrigin As Point2d
oProfileOrigin = oSweep.Profile.RegionProperties.Centroid
Dim oProfileOrigin3D As Point
oProfileOrigin3D = oSweep.Profile.Parent.SketchToModelSpace(oProfileOrigin)
Dim oCurves As ObjectsEnumerator
oCurves = oDef.Features.SweepFeatures.GetTruePath(oSweep.Path, oProfileOrigin3D)
Dim oCurve As Object
For Each oCurve In oCurves
Dim oCurveEval As CurveEvaluator
oCurveEval = oCurve.Evaluator
Dim MinParam As Double
Dim MaxParam As Double
Dim Length As Double
Call oCurveEval.GetParamExtents(MinParam, MaxParam)
Call oCurveEval.GetLengthAtParam(MinParam, MaxParam, Length)
TotalLength = TotalLength + Length
Next
cnt = cnt + 1
Call oHighLight.AddItem(selectF)
oPrompt = Round(oUOM.ConvertUnits(TotalLength, "cm", _
oLUnits), oPrecision) & " " & oUnitString
End If
End While
InputBox("TOTAL LENGTH" & vbCrLf & "of " & cnt & " sweeps:", "Sweep Length", oPrompt)
ExitRule :
oHighLight.Clear
Pro případný hromadný výběr VŠECH tažení v modelu použijte cyklus (namísto While True):
For Each oSweep In oDef.Features.SweepFeatures
Next
Dalším doplněním makra lze např. do modelu přidávat parametr celkové délky.