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: 1279 
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řenoVypnutí a zapnutí pole komponent v sestavě iLogic

 Odpovědět Odpovědět archiv
Autor
rizekB Zobrazit panel
Nováček
Nováček

Přihlášen: 08.lis.2017
Lokalita: ČR (ZL)
Používám:
Advance Steel
Stav: Offline
Bodů: 9
Přímý odkaz na tuto zprávu Téma: Vypnutí a zapnutí pole komponent v sestavě iLogic
    Zasláno: 07.pro.2017 v 08:11
Už to fakčí :) děkuji
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ů: 1637
Přímý odkaz na tuto zprávu Zasláno: 06.pro.2017 v 15:31
No dá se to napsat i tak, že pro různé podmínky explicitně zapnete/vypnete pole
 
'Zapinani pole podle podminky'
If delka < 8500 Then
  Component.IsActive("SP 10") = False
Else
  Component.IsActive("SP 10") = True
End If
'Tato pole jsou zapnuta vzdy'
Component.IsActive("SP 5 L") = True
Component.IsActive("SP 5 P") = True
Component.IsActive("SP 0 P") = True
Component.IsActive("SP 0 L") = True
 
Nebo zkráceně
 

'Zapinani pole podle podminky'
Component.IsActive("SP 10") = Not (delka < 8500)
 
'Tato pole jsou zapnuta vzdy'
Component.IsActive("SP 5 L") = True
Component.IsActive("SP 5 P") = True
Component.IsActive("SP 0 P") = True
Component.IsActive("SP 0 L") = True
 
 
Zpět nahoru
rizekB Zobrazit panel
Nováček
Nováček

Přihlášen: 08.lis.2017
Lokalita: ČR (ZL)
Používám:
Advance Steel
Stav: Offline
Bodů: 9
Přímý odkaz na tuto zprávu Zasláno: 06.pro.2017 v 15:08
Teď to mám takhle

Dim activePattern As Integer
If delka < 8500 Then
activePattern = 1
Else
activePattern = 2
End If

Component.IsActive("SP 10") = (activePattern = 2)
Component.IsActive("SP 5 L") = (activePattern = 1)
Component.IsActive("SP 5 P") = (activePattern = 1)
Component.IsActive("SP 0 P") = (activePattern = 1)
Component.IsActive("SP 0 L") = (activePattern = 1)

Potřeboval bych to tak, aby se mi při nedodržení podmínky zapnuly všechny pole a ne jenom pole SP 10.
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ů: 1637
Přímý odkaz na tuto zprávu Zasláno: 06.pro.2017 v 14:02
První část definuje a nastaví proměnnou activePattern na hodnotu, která odpovídá poli, které chcete zapnout na základě hodnoty parametru delka.
Dim activePattern As Integer
If delka < 1000 Then
 activePattern = 1
ElseIf 1000 <= delka AndAlso delka < 2000 Then
 activePattern = 2
Else
 activePattern = 3
End If
 
 
Druhá část použije metodu Component.IsActive pro zapnutí/vypnutí pole.
'Zapne pole komponent
Component.IsActive("Pole komponent 1:1") = True
'Vypne pole komponent
Component.IsActive("Pole komponent 1:1") = False
 
no a výraz v závorce (activePattern = 1) lze vyhodnotit jako logickou hodnotu True/False.
 
To je celé.
Zpět nahoru
rizekB Zobrazit panel
Nováček
Nováček

Přihlášen: 08.lis.2017
Lokalita: ČR (ZL)
Používám:
Advance Steel
Stav: Offline
Bodů: 9
Přímý odkaz na tuto zprávu Zasláno: 06.pro.2017 v 12:06
můžete mi prosím vysvětlit, na jakém principu to funguje? chtěl bych to pochopit :) děkuji
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ů: 1637
Přímý odkaz na tuto zprávu Zasláno: 05.pro.2017 v 12:42
No tak si to zkuste. Podle mě je to to, co potřebujete.
Zpět nahoru
rizekB Zobrazit panel
Nováček
Nováček

Přihlášen: 08.lis.2017
Lokalita: ČR (ZL)
Používám:
Advance Steel
Stav: Offline
Bodů: 9
Přímý odkaz na tuto zprávu Zasláno: 05.pro.2017 v 12:10
To ale jenom ty pole zapíná že? Potřeboval bych i vypínání polí na základě podmínky.
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ů: 1637
Přímý odkaz na tuto zprávu Zasláno: 05.pro.2017 v 11:28
třeba takhle
 

Dim activePattern As Integer
If delka < 1000 Then
 activePattern = 1
ElseIf 1000 <= delka AndAlso delka < 2000 Then
 activePattern = 2
Else
 activePattern = 3
End If
Component.IsActive("Pole komponent 1:1") = (activePattern = 1)
Component.IsActive("Pole komponent 2:1") = (activePattern = 2)
Component.IsActive("Pole komponent 3:1") = (activePattern = 3)
Zpět nahoru
rizekB Zobrazit panel
Nováček
Nováček

Přihlášen: 08.lis.2017
Lokalita: ČR (ZL)
Používám:
Advance Steel
Stav: Offline
Bodů: 9
Přímý odkaz na tuto zprávu Zasláno: 05.pro.2017 v 09:39
Jak to zkombinuji s podmínkou If?

If delka<8500 then
...
...
...
else
...
...
End If
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ů: 1637
Přímý odkaz na tuto zprávu Zasláno: 05.pro.2017 v 08:52
No podle mě je nejjednodušší použít metodu IsActive
 

Dim activePattern As Integer = 1 ' 2 3
Component.IsActive("Pole komponent 1:1") = (activePattern = 1)
Component.IsActive("Pole komponent 2:1") = (activePattern = 2)
Component.IsActive("Pole komponent 3:1") = (activePattern = 3)
Zpět nahoru
rizekB Zobrazit panel
Nováček
Nováček

Přihlášen: 08.lis.2017
Lokalita: ČR (ZL)
Používám:
Advance Steel
Stav: Offline
Bodů: 9
Přímý odkaz na tuto zprávu Zasláno: 04.pro.2017 v 10:14
Zdravím, mám jeden problém.
Mám vytvořené tři(3) pole komponent v sestavě a pomocí podmínky chci tyto pole zapínat a vypínat. Zkoušel jsem to přes True a False ale pokud je pole False, tak už se nechce zpátky přepnout do True.

Děkuji za rady
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 12596:VIPHromadné nastavení viditelnosti komponent dle názvu (iLogic).
Tip 12246:VIPHromadné vypnutí viditelnosti součástí sestavy dle velikosti (hmotnost, objem) nebo názvu (iLogic)
Tip 9969:VIPJak jednoduše vypnout pracovní roviny v celé struktuře sestavy Inventoru?
Tip 9157:VIPJak vypnout/zapnout funkce iLogic?
Tip 8955:Jak rozbít pole komponent v sestavě na nezávislé díly?
Tip 12559:VIPKontrola adaptivity v sestavách a hromadné vypnutí (iLogic)


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