Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy CAD Studio [www.cadforum.cz]
Česky Slovensky English Deutsch
Přihlášení:
▶ Registrace

 právě nás čte: 1331 
RSS tipy RSS kanál - CAD tipy
RSS diskuze RSS kanál - CAD diskuze

Diskuze Diskuzní fórum, poradna

NápovědaCAD diskuze, rady, výměna zkušeností

CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion 360, 3ds Max a s dalšími CAD aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy CAD Studio - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoMěření smyčky v náčrtu

 Odpovědět Odpovědět archiv
Autor
kosulic Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 24.úno.2010
Lokalita: ČR (JM)
Používám:
Inventor 2016
Stav: Offline
Bodů: 158
Přímý odkaz na tuto zprávu Téma: Měření smyčky v náčrtu
    Zasláno: 18.úno.2014 v 09:33
Zkouším udělat pravidlo na měření smyčky z náčrtu (model řetězu)
Potřebuji vytvořit 4 parametry (nejlépe je označit pro export)
Změřit smyčku
vypočítat počet článků
vypočítat počet spojek

Nefunguje mi ale zaokrouhlování a nevím jak parametry označit pro export.
Kdyby se našla dobrá duše, která by mi pomohla, byl bych vděčný.


Try
    Param = ThisDoc.Document.ComponentDefinition.Parameters("DELKA_SMYCKY")
Catch
    Param = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByExpression("DELKA_SMYCKY", 1, "mm" )
End Try

Dim se As SketchEntity = ThisDoc.Document.ComponentDefinition.Sketches(1).SketchLines(1)  
Param.Expression =(ThisApplication.MeasureTools.GetLoopLength(se)*10 & " mm")
Parameter("DELKA_SMYCKY") = Round(DELKA_SMYCKY)

Try
    Param = ThisDoc.Document.ComponentDefinition.Parameters("ROZTEC_RETEZU")
Catch
    Param = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByExpression("ROZTEC_RETEZU", 1, "mm" )
End Try
Parameter("ROZTEC_RETEZU") = 12.7

Try
    Param = ThisDoc.Document.ComponentDefinition.Parameters("POCET_CLANKU")
Catch
    Param = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByExpression("POCET_CLANKU", 1, "ul" )
End Try
Parameter("POCET_CLANKU") = Round(DELKA_SMYCKY/ROZTEC_RETEZU)

Try
    Param = ThisDoc.Document.ComponentDefinition.Parameters("SPOJKA_POCET")
Catch
    Param = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByExpression("SPOJKA_POCET", 1, "ul" )
End Try
Parameter("SPOJKA_POCET") = Floor((DELKA_SMYCKY/5000))+1
Zpět nahoru
Navara Zobrazit panel
CAD Studio support
CAD Studio support
Avatar
CAD Studio s.r.o.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1247
Přímý odkaz na tuto zprávu Zasláno: 18.úno.2014 v 20:00
V tom kódu je několik formálních chyb a měl by vypadat takhle:
Dim Param As Parameter
Try
    Param = ThisDoc.Document.ComponentDefinition.Parameters("DELKA_SMYCKY")
Catch
    Param = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByExpression("DELKA_SMYCKY", 1, "mm")
End Try
Dim se As SketchEntity = ThisDoc.Document.ComponentDefinition.Sketches(1).SketchLines(1)
Dim delkaRetezu As Double = Math.Round(ThisApplication.MeasureTools.GetLoopLength(se)) * 10
Param.Expression = (delkaRetezu & " mm")
Try
    Param = ThisDoc.Document.ComponentDefinition.Parameters("ROZTEC_RETEZU")
Catch
    Param = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByExpression("ROZTEC_RETEZU", 1, "mm")
End Try
Dim roztecRetezu As Double = 12.7
Param.Expression = roztecRetezu & "mm"
Try
    Param = ThisDoc.Document.ComponentDefinition.Parameters("POCET_CLANKU")
Catch
    Param = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByExpression("POCET_CLANKU", 1, "ul")
End Try
Dim pocetClanku As Integer = Math.Round(delkaRetezu / roztecRetezu)
Param.Expression = pocetClanku & "ul"
Try
    Param = ThisDoc.Document.ComponentDefinition.Parameters("SPOJKA_POCET")
Catch
    Param = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByExpression("SPOJKA_POCET", 1, "ul")
End Try
Param.Expression = Math.Floor((delkaRetezu / 5000)) + 1 & "ul"
 
ale asi bych dal přednost zkrácené verzi s voláním funkce pro nastavení parametru a jeho p5enosem do iVlastnosti
 
Sub Main()
    Dim se As SketchEntity = ThisDoc.Document.ComponentDefinition.Sketches(1).SketchLines(1)
    Dim delkaRetezu As Double = Math.Round(ThisApplication.MeasureTools.GetLoopLength(se)) * 10
    SetParam("DELKA_SMYCKY", delkaRetezu, " mm")
    Dim roztecRetezu As Double = 12.7
    SetParam("ROZTEC_RETEZU", roztecRetezu, "mm")
    Dim pocetClanku As Integer = Math.Round(delkaRetezu / roztecRetezu)
    SetParam("POCET_CLANKU", pocetClanku, "ul")
    SetParam("SPOJKA_POCET", Math.Floor((delkaRetezu / 5000)) + 1, "ul")
End Sub
Sub SetParam(paramName As String, value As Double, units As String)
    Dim Param As Parameter
    Try
        Param = ThisDoc.Document.ComponentDefinition.Parameters(paramName)
    Catch
        Param = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByExpression(paramName, 1, units)
    End Try
    Param.Expression = String.Format("{0} {1}", value, units)
    'Set as property
    Param.ExposedAsProperty = True
    Param.CustomPropertyFormat.Precision = CustomPropertyPrecisionEnum.kOneDecimalPlacePrecision
    Param.CustomPropertyFormat.PropertyType = CustomPropertyTypeEnum.kTextPropertyType
    Param.CustomPropertyFormat.ShowTrailingZeros = False
    Param.CustomPropertyFormat.ShowUnitsString = False
    '...
End Sub
 
Zpět nahoru
kosulic Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 24.úno.2010
Lokalita: ČR (JM)
Používám:
Inventor 2016
Stav: Offline
Bodů: 158
Přímý odkaz na tuto zprávu Zasláno: 20.úno.2014 v 10:49
Děkuji, mrknu na to a vyzkouším.
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 7110:Jak zjistit délku náčrtu Inventoru?
Tip 5235:Nelze vybrat křivku funkcí Ekvidistanta v náčrtu.
Tip 3371:Jak změřit délku trajektorie tažení?
Tip 1848:Jak psát v Inventoru 3D text do oblouku?
Tip 8909:iLogic pravidlo pro změření délky smyčky v náčrtu.
Tip 4669:VIPJak zvýšit přesnost odměřování (kótování) v DWF Composeru (Design Review)?


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 0,469 sekund.