Vytisknout stránku | Zavřít okno

SKLÁDÁNÍ NÁZVU Z PRÁDNÝCH VLASTNOSTÍ

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: iLogic a ETO
Popis fóra: Funkce a makra iLogic, Inventor Engineering to Order (ETO), automatizace a konfigurace výrobků
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=28171
Datum vytištění: 07.kvě.2026 v 02:35


Téma: SKLÁDÁNÍ NÁZVU Z PRÁDNÝCH VLASTNOSTÍ
Odeslal: Lukáš Záruba
Předmět: SKLÁDÁNÍ NÁZVU Z PRÁDNÝCH VLASTNOSTÍ
Datum odeslání: 14.pro.2018 v 19:16
Zdravím,

Mám ilogic, který mi skládá popis nebo název dílů z uživatelských i-vlastností a třeba jednoho či několika parametrů. 

iProperties.Value("Summary", "Title")= iProperties.Value("Custom", "PREDNAZEV")&" "&iProperties.Value("Custom", "PREDNAZEV2")&" "&iProperties.Value("Custom", "TYP")&" "&iProperties.Value("Custom", "MAT")&" - "&iProperties.Value("Custom", "ROZMER_KRYTU")

Problém nastává když mám pravidlo složené s několika i-vlastností jedna nebo několik jich je prázdných. V názvu to potom napíše mezeru. Potřebuji do vzorce vložit nějaký zástupný symbol, který řekne inventoru prázdné i-vlastnosti neřeš!

Jde to nějak? 


-------------
Budu rád za radu i případně všelijaké postřehy.



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 14.pro.2018 v 19:32
Je potřeba jednotlivě ošetřit možné chyby přístupu k neexistujícím vlastnostem - např. pomocí Try/Catch:


Try
Nazev = iProperties.Value("Custom", "PREDNAZEV")
Catch
End Try
Try
Rozmer = iProperties.Value("Custom", "ROZMER_KRYTU")
Catch
End Try
MsgBox(iProperties.Value("Summary", "Title") & "-" & Nazev & "-" & Rozmer)


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Lukáš Záruba
Datum odeslání: 14.pro.2018 v 20:51
Ale Já potřebuji aby mi toto pravidlo vyplnilo I-vlastnost "NÁZEV" a to tak aby mi ho složil z následujících i-vlastností nebo parmetrů. Až sem pravidlo funguje skvěle! Už v základní šabloně mám připravené uživatelské i-vlattnosti "PREDNAZEV"; "PREDNAZEV2"; "TYP" a parametr DÉLKA.

iProperties.Value("Summary""Title")= iProperties.Value("Custom""PREDNAZEV")&" "&iProperties.Value("Custom""PREDNAZEV2")&" "&iProperties.Value("Custom""TYP")&""&iProperties.Value("Custom""MAT")&" - "&iProperties.Value("Custom""DÉLKA")

problém nastane když použiju toto pravidlo a hodnota třeba u "PREDNAZEV2" je prázná viz výstřižek. potom mi to složí název a místo vynechání vloží mezeru:

"PREDNAZEV" "Zde místo vynechání hodí mezeru" "TYP" - "DÉLKA"

Potřebuji to upravit tak aby se při skládání názvu inventor podíval zda není zadaná i-vlatnost či parametr prázný a v tom případě ho vynechal.


-------------
Budu rád za radu i případně všelijaké postřehy.


Odeslal: Vladimír Michl
Datum odeslání: 14.pro.2018 v 22:25
Ano, rozumím, ale ten princip právě platí i pro tento případ. Jednak je třeba ošetřit případ, kdy ty vlastnosti vůbec neexistují a jednak pak můžete ošetřit i jejich prázdnou hodnotu ("vynechat" znamená přiřadit hodnotu "").

Např. tedy:

Rozmer=""
Try
Rozmer = iProperties.Value("Custom", "ROZMER_KRYTU") & " "
Catch
End Try
iProperties.Value("Summary", "Title")= Rozmer & ….


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Lukáš Záruba
Datum odeslání: 15.pro.2018 v 09:16
ZDRAVÍM, 

Mnohokrát děkuji již mi to funguje:

Try
 Nazev1 = iProperties.Value("Custom", "N1")
 Catch 
End Try
Try
 NMezera1 = iProperties.Value("Custom", "N1-M")
 Catch 
End Try
Try
 Nazev2 = iProperties.Value("Custom", "N2")
 Catch 
End Try
Try
 NMezera2 = iProperties.Value("Custom", "N2-M")
 Catch 
End Try
Try
 Nazev3 = iProperties.Value("Custom", "N3")
 Catch 
End Try
Try
 NMezera3 = iProperties.Value("Custom", "N3-M")
 Catch 
End Try
Try
 Rozmer1 = iProperties.Value("Custom", "R1")
 Catch 
End Try
Try
 RMezera1 = iProperties.Value("Custom", "R1-M")
 Catch 
End Try
Try
 Rozmer2 = iProperties.Value("Custom", "R2")
 Catch 
End Try
Try
 RMezera2 = iProperties.Value("Custom", "R2-M")
 Catch 
End Try
iProperties.Value("Summary", "Title") = (Nazev1 &""& NMezera1 &""& Nazev2 &""& NMezera2 
&""& Nazev3 &""& NMezera3 &""& Rozmer1 &""& RMezera1 &""& Rozmer2 &""& RMezera2)

Nyní ní mohu mít jeden univerzální vzorec který mi vyplní správně název bez ohledu na to z kolika slov nebo rozměrů se skládá. Do teď jsem měl spousty vzorců uloženy jako fragment a používal jsem je dle potřeby. 



-------------
Budu rád za radu i případně všelijaké postřehy.



Vytisknout stránku | Zavřít okno