Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy CAD Studio [www.cadforum.cz]
Česky Slovensky English Deutsch
Přihlášení:
▶ Registrace

 právě čte: 4838 
RSS tipy RSS kanál - CAD tipy
RSS diskuze RSS kanál - CAD diskuze

Diskuze Diskuzní fórum

NápovědaCAD diskuze

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 a 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.
Fórum nenahrazuje technický support firmy 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

Vypnutí 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:
Autocad 2017, Inventor 2018
Stav: Offline
Bodů: 9
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace rizekB Citace  OdpovědětOdpověď 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
CAD Studio support
CAD Studio support
Avatar
CAD Studio a.s.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 889
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace Navara Citace  OdpovědětOdpověď 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:
Autocad 2017, Inventor 2018
Stav: Offline
Bodů: 9
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace rizekB Citace  OdpovědětOdpověď 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
CAD Studio support
CAD Studio support
Avatar
CAD Studio a.s.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 889
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace Navara Citace  OdpovědětOdpověď 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:
Autocad 2017, Inventor 2018
Stav: Offline
Bodů: 9
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace rizekB Citace  OdpovědětOdpověď 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
CAD Studio support
CAD Studio support
Avatar
CAD Studio a.s.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 889
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace Navara Citace  OdpovědětOdpověď 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:
Autocad 2017, Inventor 2018
Stav: Offline
Bodů: 9
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace rizekB Citace  OdpovědětOdpověď 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
CAD Studio support
CAD Studio support
Avatar
CAD Studio a.s.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 889
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace Navara Citace  OdpovědětOdpověď 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:
Autocad 2017, Inventor 2018
Stav: Offline
Bodů: 9
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace rizekB Citace  OdpovědětOdpověď 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
CAD Studio support
CAD Studio support
Avatar
CAD Studio a.s.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 889
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace Navara Citace  OdpovědětOdpověď 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:
Autocad 2017, Inventor 2018
Stav: Offline
Bodů: 9
Možnosti příspěvku Možnosti příspěvku   Poděkování (0) Poděkování0   Citace rizekB Citace  OdpovědětOdpověď 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 9157:VIPJak vypnout/zapnout funkce iLogic?
Tip 9969:VIPJak jednoduše vypnout pracovní roviny v celé struktuře sestavy Inventoru?
Tip 9551:VIPPřebarvení komponent z daného materiálu v celé sestavě Inventoru.
Tip 8955:Jak rozbít pole komponent v sestavě na nezávislé díly?
Tip 9642:VIPiLogic pravidlo pro vytvoření pracovních bodů v těžištích všech komponent sestavy.
Tip 9064:VIPDávkové publikování PDF výkresů všech komponent v sestavě.


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