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: 10581 
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: 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
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ů: 1636
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: 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ů: 1636
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 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ů: 1636
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: 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ů: 1636
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 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ů: 1636
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: 07.pro.2017 v 08:11
Už to fakčí :) děkuji
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,891 sekund.