Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 5519 
RSS kanál - CAD tipy RSS tipy
RSS 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 Arkance Systems (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řenoVLOŽENÍ VÍCE UŽIVATELSKÝCH IVLASTNOSTÍ NAJEDNOU

 Odpovědět Odpovědět archiv
Autor
Lukáš Záruba Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 02.lis.2007
Lokalita: ČR (SČ)
Používám:
inventor 2015
Stav: Offline
Bodů: 423
Přímý odkaz na tuto zprávu Téma: VLOŽENÍ VÍCE UŽIVATELSKÝCH IVLASTNOSTÍ NAJEDNOU
    Zasláno: 20.říj.2018 v 10:55
Zdravím,

Mám Ilogic který mi poskládá název "Title" z už.vl.+rozměrů ale nevím jak napsat aby před složením Názvu vytvořil všechny ivlastnosti a parametry do modelu. ( 

Dim propertyName As String = "PREDNAZEV"
Dim propertyValue As String = ""

customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")
Try
      prop = customPropertySet.Item(propertyName)
Catch
      customPropertySet.Add("", propertyName)
End Try

iProperties.Value("Summary", "Title") = iProperties.Value("Custom", "PREDNAZEV")&" "&iProperties.Value("Custom", "TYP")&" - "&Parameter("DÉLKA")&"mm"
'PREDNAZEV - MUSÍ BÝT V UŽVATELSKÝCH IVLASTNOSTECH V MODELU' 
'typ - MUSÍ BÝT V UŽVATELSKÝCH IVLASTNOSTECH V MODELU' 
'DÉLKA - MUSÍ BÝT PARAMETR DÉLKY DÍLU' 
Budu rád za radu i případně všelijaké postřehy.
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 20065
Přímý odkaz na tuto zprávu Zasláno: 20.říj.2018 v 14:37
To je na vás. Nebo se generují také nějak automaticky? Nebo jen chcete zkontrolovat, zda už je uživatel správně vytvořil?
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Lukáš Záruba Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 02.lis.2007
Lokalita: ČR (SČ)
Používám:
inventor 2015
Stav: Offline
Bodů: 423
Přímý odkaz na tuto zprávu Zasláno: 20.říj.2018 v 22:17
Dosud jsem to používal jen v nových projektech kde mám již v šabloně připraveny:

uživatelské ivlastnosti: "PREDNAZEV" ; "TYP"
uživatelský parametr: Délka

Teď ale musím pracovat i se staršími projekty, které to nemají tahle přesně nastavený a proto chci pomocí ilogicu automaticky před vlastním složením názvu zkontrolovat zda jsou nebo je vytvořit.
  
Budu rád za radu i případně všelijaké postřehy.
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 20065
Přímý odkaz na tuto zprávu Zasláno: 21.říj.2018 v 09:57
Rozumím. Když si to skládání Title dáte do větve Try (té stávající nebo nové), můžete tím ošetřit stav, kdy parametr neexistuje a zobrazit třeba upozornění (MsgBox).
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Lukáš Záruba Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 02.lis.2007
Lokalita: ČR (SČ)
Používám:
inventor 2015
Stav: Offline
Bodů: 423
Přímý odkaz na tuto zprávu Zasláno: 21.říj.2018 v 18:36
Takže nějak takhle? ale tohle mi nějak nefunguje. nevím kde je chyba.

Try
  p = Parameter("DÉLKA")
Catch
  oUserParams.AddByValue("DÉLKA","","mm")
End Try

Try
 prop = customPropertySet.Item("PREDNAZEV")
Catch
 customPropertySet.Add("Custom","PREDNAZEV")
End Try

Try
 prop = customPropertySet.Item("TYP")
Catch
 customPropertySet.Add("Custom","TYP")
End Try

iProperties.Value("Summary", "Title") = iProperties.Value("Custom", "PREDNAZEV")&" "&iProperties.Value("Custom", "TYP")&" - "&Parameter("D�LKA")&"mm"
'PREDNAZEV - MUSÍ BÝT V UŽVATELSKÝCH IVLASTNOSTECH V MODELU' 
'TYP - MUSÍ BÝT V UŽVATELSKÝCH IVLASTNOSTECH V MODELU' 
'DÉLKA - MUSÍ BÝT PARAMETR DÉLKY DÍLU' 
Budu rád za radu i případně všelijaké postřehy.
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 20065
Přímý odkaz na tuto zprávu Zasláno: 21.říj.2018 v 18:43
ne, to nastavení Title musíte mít v tom Try

konstrukce Try-Catch je v principu:

zkus tohleto, a když to selže, tak proveď tohleto
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Lukáš Záruba Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 02.lis.2007
Lokalita: ČR (SČ)
Používám:
inventor 2015
Stav: Offline
Bodů: 423
Přímý odkaz na tuto zprávu Zasláno: 21.říj.2018 v 18:49
No ale já potřebuju aby mi ilogic prozkoumal jestli v modelu je a pokud není tak vložil:

1x uživatlský parametr "DÉLKA"
a
2X Uživatelskou ilvastnost "PREDNAZEV" + "TYP"

zbytek tohoto pravidla když když je v modelu kde tyto věci jsou funguje bez chyby 
iProperties.Value("Summary", "Title") = iProperties.Value("Custom", "PREDNAZEV")&" "&iProperties.Value("Custom", "TYP")&" - "&Parameter("D�LKA")&"mm"
'PREDNAZEV - MUSÍ BÝT V UŽVATELSKÝCH IVLASTNOSTECH V MODELU' 
'TYP - MUSÍ BÝT V UŽVATELSKÝCH IVLASTNOSTECH V MODELU' 
'DÉLKA - MUSÍ BÝT PARAMETR DÉLKY DÍLU'
Budu rád za radu i případně všelijaké postřehy.
Zpět nahoru
Navara Zobrazit panel
Arkance Systems support
Arkance Systems support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1480
Přímý odkaz na tuto zprávu Zasláno: 22.říj.2018 v 12:00
Tady už je asi potřeba přemýšlet trochu víc jako programátor. To co bych doporučil je začít využívat funkce místo psaní přímočarého skriptu. Vede to potom na mnohem čitelnější a kratší kód, než v prvním případě.
Sub Main()
    Dim doc As Document = ThisDoc.Document
    SetTitle(doc)
End Sub
Private Sub SetTitle(doc As Document)
    Dim delka As String = GetParameterValue(doc, "DÉLKA")
    Dim prednazev As String = GetPropertyValue(doc, "PREDNAZEV")
    Dim typ As String = GetPropertyValue(doc, "TYP")
    doc.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}")("Title").Value = String.Format("{0} {1}-{2}", prednazev, typ, delka)
End Sub
Private Function GetPropertyValue(doc As Document, propertyName As String) As String
    Dim userDefinedProperties As PropertySet = doc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
    Dim prop As Inventor.Property
    Try
        prop = userDefinedProperties(propertyName)
    Catch ex As Exception
        prop = userDefinedProperties.Add("", propertyName)
    End Try
    Return prop.Value.ToString()
End Function
Private Function GetParameterValue(doc As Document, paramName As String) As String
    Dim part As PartDocument = doc
    Dim userParameters As UserParameters = part.ComponentDefinition.Parameters.UserParameters
    Dim param As Parameter
    Try
        param = UserParameters(paramName)
    Catch ex As Exception
        userParameters.AddByValue(paramName, 0, "mm")
    End Try
    'Nastavit propisovani parametru do iVlastnosti
    param.ExposedAsProperty = True
    Dim value As Double = param.ModelValue * 10
    Return String.Format("{0} mm", value)
End Function
 
Další možností je využití interní funkce Inventoru na skládání hodnot iVlastností pomocí výrazů. Tady stačí ten kód spustit jenom jednou a potom už se hodnota Title mění automaticky při změně jedné z použitých iVlastností.
 

Sub Main()
    Dim doc As Document = ThisDoc.Document
    SetTitleAsExpression(doc)
End Sub
Private Sub SetTitleAsExpression(doc As Document)
    Dim delka As String = GetParameterValue(doc, "DÉLKA")
    Dim prednazev As String = GetPropertyValue(doc, "PREDNAZEV")
    Dim typ As String = GetPropertyValue(doc, "TYP")
   doc.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}")("Title").Expression = "=<PREDNAZEV> <TYP>-<DÉLKA>"
End Sub
 
 


Upravil Navara - 22.říj.2018 v 12:10
Zpět nahoru
Lukáš Záruba Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 02.lis.2007
Lokalita: ČR (SČ)
Používám:
inventor 2015
Stav: Offline
Bodů: 423
Přímý odkaz na tuto zprávu Zasláno: 22.říj.2018 v 13:05
Děkuji za radu, zkusím to.
Budu rád za radu i případně všelijaké postřehy.
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 3712:VIPNastavení iVlastností pro více souborů Inventoru najednou.
Tip 8616:Zalomení textu v rohovém razítku - iVlastnosti.
Tip 6023:Vložení hodnoty vypočteného číselného parametru bez jednotek "ul".
Tip 317:VIPJak převést více DWG výkresů najednou do formátu DWF?
Tip 12879:Jak do DWG připojit více rastrových obrázků najednou?
Tip 7827:Jak v Revitu vymazat více materiálů najednou?


 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,313 sekund.