ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Již 10.000+ CAD tipů. Přes 118.000 registrovaných u nás, celkem 1.091.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků. Vyzkoušejte nový přesný Inženýrský kalkulátor. Kompletní příkazy AutoCADu a proměnné AutoCADu 2026.
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

?
CAD 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, 3ds Max, Vault a s dalšími CAD/BIM/PDM 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 (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.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ů: 429
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:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21891
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 CZ - arkance.world
(podpora viz helpdesk.arkance-systems.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ů: 429
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:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21891
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 CZ - arkance.world
(podpora viz helpdesk.arkance-systems.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ů: 429
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:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21891
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 CZ - arkance.world
(podpora viz helpdesk.arkance-systems.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ů: 429
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 support
ARKANCE support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1637
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ů: 429
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 12879:Jak do DWG připojit více rastrových obrázků najednou?
Tip 317:VIPJak převést více DWG výkresů najednou do formátu DWF?
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,320 sekund.