Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk
 - od firmy Arkance Systems [www.cadforum.cz slaví 20 let]
CZ | SK | EN | DE
Přihlášení
či registrace
  právě nás čte: 7755

CAD tip CAD tip # 13964:

   
Otázka CAD 
 %  platforma  kategorie 
Q - otázka

Celková délka tažených prvků v Inventoru - rour, hadic, nosníků, drátů (iLogic).

A - odpověď 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.

Inventor
100% *  CAD 
17.12.2023    506×   Expert
font ilogic inventor model součást text
 
Související CAD produkty:
Ceny - CAD eShop:
platí pro: Inventor ·

Zpět   Všechny další tipy



Pomohl vám tento tip? Provoz služby CADForum.cz podpoříte i nákupem produktů Autodesk u provozovatele tohoto serveru a Platinum partnera Autodesku, firmy Arkance Systems.
Můžete si také přidat odkaz na vaše stránky: CAD Fórum - diskuze, tipy, bloky a utility
CAD:    OS:    Kateg: 
Text:  FAQ   






Tipy a triky prosím využívejte na vlastní zodpovědnost.
Provozovatel (Arkance Systems CZ s.r.o.) nenese odpovědnost za případné potíže vzniklé v souvislosti s použitím kteréhokoliv z uvedených tipů.
Pro plné zvládnutí dané aplikace doporučujeme absolvování některého z nabízených CAD školení.
Další publikování obsahu je dovoleno jen se souhlasem autora.
TOPlist