Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  iLogic - Zugriff auf Bauteilteilparameter in tieferen Baugruppen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
ZWCAD bietet leistungsfähigere Designs für SAIC
Autor Thema:  iLogic - Zugriff auf Bauteilteilparameter in tieferen Baugruppen (42 mal gelesen)
iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 09. Dez. 2013 15:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

kann man per iLogic Baugruppen in unterschiedlichen tiefen bearbeiten?

Bsp:

- Baugruppe 1 (iLogic Regel)
---Schraube M10x20
---Unterbaugruppe 1
-----Unterbaugruppe 1.1
--------Bauteil 1.1 (Würfel 100x100x100mm)


Nun soll in einem Rutsch, beim ausführen einer Regel in der
Baugruppe 1, folgendes abgearbeitet werden:

- Würfel auf 150x150x150 ändern
- Schraube M10x20 durch M10x25 ersetzen

´Wäre das möglich?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 10. Dez. 2013 09:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Hallo,

ja, das wäre durchaus möglich.
Allerdings musst du in die Unterbaugruppe 1 und in Unterbaugruppe1.1 auch iLogic Regeln einbauen, auf die du in Baugruppe 1 zugreifen kannst.

Die Schraube ist ja sowieso in der Hauptbaugruppe vorhanden, da solltest du sowieso keine Probleme haben.

Gruß Chris

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 10. Dez. 2013 09:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

es kommt natürlich auch darauf an, wie du deine Regeln aufbaust. Unter Umständen ist es auch möglich, die Teile direkt zu manipulieren, indem du die jeweilige untergeordnete Ebene in Bearbeitung setzt und dann dort wieder die jeweilig untergeordnete in Bearbeitung und so weiter, bis du dort bist, wo du hin möchtest.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 11. Dez. 2013 08:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke.
Ich würde gerne die ganzen Baugruppe mit einem einzigen Forumular
von ganz oben steuern, wenn möglich.

Also, ich verstehe dich so:

- Baugruppen und Bauteile in Ebene 2 oder tiefer kann ich nicht direkt ansprechen
- Aber man kann Regeln in tieferern Ebene ausführen

Richtig?


Heisst, wenn ich so eine Baugruppe habe:

- BG 1
-- BG 1.1
--- BG 1.1.1
---- BG 1.1.1.1
---- Würfel.prt

Und ich den Würfel bearbeiten will, zb Parameter bearbeiten, dann braucht jede BG eine eigene Regel, die eine tiefere auslöst?

Meine damit:

- Regel in BG 1 löst Regel in BG 1.1 aus
- Regel in BG 1.1 löst Regel in BG 1.1.1 aus
- Regel in BG 1.1.1 löst Regel in BG 1.1.1.1 aus
- Regel in BG 1.1.1.1 ändert Bauteilparameter

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 11. Dez. 2013 08:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Guten Morgen,

das kommt sehr darauf an, wie du deine Regeln programmierst.

Hast du zufällig ein Beispiel?

Wenn du es mit einfachen iLogic-Snippets programmierst, dann ist es anders, als wenn du vb-Code nutzt.

Gruß Chris

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 11. Dez. 2013 09:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

noch habe ich nichts programmiert, wollte erstmal wissen, was überhaupt möglich ist.

wäre natürlich interessant zu wissen, wie man sowas ggf mit vb
löst, also nur eine regel in der BG 1, und dann ein bauteil in BG 1.1.1.1 zu ändern

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 11. Dez. 2013 09:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Dann müsstest du in deiner Regel die Baugruppen durchlaufen, die richtige Unterbaugruppe suchen, die "im Edit öffnen" oder rekursiv durchlaufen, dann in dieser Unterbaugruppe wieder die richtige Baugruppe suchen und editieren oder durchlaufen, in dieser wieder das gleiche Prozedere. Solange, bis du ganz unten angekommen bist. Dann kannst du den Parameter in deinem Bauteil bearbeiten.

Geht alles. Ist bei einer definierten Tiefe von Ebenen auch nicht so schwierig. Wenn du nicht weißt, wie viele Ebenen du hast, oder immer unterschiedlich viele Ebenen vorkommen, bis du bei deinem Bauteil angekommen bist, dann musst du in jede Ebene eine Abfrage einbauen, ob es schon vorhanden ist, wenn nicht, in die nächsttiefere Ebene springen und dort suchen.

Gruß Chris

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 11. Dez. 2013 15:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Hallo

Sollen alle Schrauben dieses Typs ersetzt werden oder nur in einer bestimmten Unterbaugruppe? Im ersten Fall wäre ein

Code:
ComponentOccurrence.Replace( FileName As String, ReplaceAll As Boolean )
wohl zielführender.

Die Parameteränderung des Würfels würde ich mal über

Code:
ComponentOccurrence.Definition() As ComponentDefinition

angehen. Damit kommst du aus der Hauptbaugruppe direkt an die ComponentDefinition des Würfels und eine Ebene darunter müßten sich die Parameter befinden.

Zum Schluß wird wohl ein

Code:
Document.Update

notwendig sein, um die Änderungen sichtbar zu machen.

Soweit die Theorie. 

------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 11. Dez. 2013 15:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Aus der Hauptbaugruppe heraus, kann man direkt auf ein Bauteil, das mehrere Baugruppenebenen drunter liegt zugreifen? 


Hätte ich das gewusst, dann hätte ich mir ne ganze Menge Arbeit sparen können 

Gruß Chris

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 11. Dez. 2013 22:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@Ralf

Danke....

Nun muss ich erstmal mir das nötige Wissen für iLogic
aneignen, habe nun zumindest mal einen Suchbegriff um
mir einen Testcode zusammenzugooglen...

Schönen abend

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 12. Dez. 2013 08:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Habe da mal was gefunden, aber irgendwie will das nicht laufen...

Code:

Sub Main
        Dim oAsmDoc As AssemblyDocument
        oAsmDoc = ThisApplication.ActiveDocument
        Call TraverseAssembly(oAsmDoc.ComponentDefinition.Occurrences, 1)
End Sub

Private Sub TraverseAssembly(Occurrences As ComponentOccurrences, Level As Integer)
        Dim oOcc As ComponentOccurrence
        For Each oOcc In Occurrences
            Dim oBrowserNode As String
            oBrowserNode = oOcc.Name
                Try                                               
                    '    Push the required iProperties down to the occurrences
                        iProperties.Value(oBrowserNode, "Custom", "Laenge") = 300
iProperties.Value(oBrowserNode, "Custom", "Hoehe") = 300
iProperties.Value(oBrowserNode, "Custom", "Breite") = 300
                Catch
                   
                End Try

                If oOcc.DefinitionDocumentType = kAssemblyDocumentObject Then
                    Call TraverseAssembly(oOcc.SubOccurrences, Level + 1) 
                End If
        Next
End Sub


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 12. Dez. 2013 08:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Gibt er denn eine Fehlermeldung zurück?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 12. Dez. 2013 09:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Mein Fehler, Code funktioniert, aber bisher nur für benutzerdefinierte iProperties.

Schreibe ich es so, passiert nichts. Keine Fehler, keine Änderung der Parameter. 

Code:

Sub Main
        Dim oAsmDoc As AssemblyDocument
        oAsmDoc = ThisApplication.ActiveDocument
        Call TraverseAssembly(oAsmDoc.ComponentDefinition.Occurrences, 1)
End Sub
Private Sub TraverseAssembly(Occurrences As ComponentOccurrences, Level As Integer)
        Dim oOcc As ComponentOccurrence
        For Each oOcc In Occurrences
            Dim oBrowserNode As String
            oBrowserNode = oOcc.Name
                Try                                               
                        Parameter("Laenge") = 300
                        Parameter("Hoehe") = 300
                        Parameter("Breite") = 300
                Catch
                   
                End Try

                If oOcc.DefinitionDocumentType = kAssemblyDocumentObject Then
                    Call TraverseAssembly(oOcc.SubOccurrences, Level + 1) 
                End If
        Next
End Sub


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 12. Dez. 2013 09:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

versuch es mal so:

Code:
Sub Main
        Dim oAsmDoc As AssemblyDocument
        oAsmDoc = ThisApplication.ActiveDocument
        Call TraverseAssembly(oAsmDoc.ComponentDefinition.Occurrences, 1)
End Sub
Private Sub TraverseAssembly(Occurrences As ComponentOccurrences, Level As Integer)
        Dim oOcc As ComponentOccurrence
                 If oOcc.DefinitionDocumentType = kAssemblyDocumentObject Then
                 Call TraverseAssembly(oOcc.SubOccurrences, Level + 1)
                End If
        For Each oOcc In Occurrences
            Dim oBrowserNode As String
            oBrowserNode = oOcc.Name
                Try                                               
                        Parameter("Laenge") = 300
                        Parameter("Hoehe") = 300
                        Parameter("Breite") = 300
                Catch
                   
                End Try

                
        Next
End Sub

[Diese Nachricht wurde von Chris 31 am 12. Dez. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 12. Dez. 2013 09:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Leider nicht...

Unter dem letzen NEXT ist ne Klammer "über", lösche ich diese kommt als
Fehler
"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 12. Dez. 2013 09:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Wo genau der Fehler kommt, kannst du aber nicht feststellen?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 12. Dez. 2013 09:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 12. Dez. 2013 09:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 12. Dez. 2013 10:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hiermit klappt es

Code:

Dim openDoc As Document
openDoc = ThisDoc.Document
'Look at all of the files referenced in the open document
Dim docFile As Document
For Each docFile In openDoc.AllReferencedDocuments
'format  file name
Dim FNamePos As Long
FNamePos = InStrRev(docFile.FullFileName, "\", -1)
Dim docFName As String
docFName = Right(docFile.FullFileName, Len(docFile.FullFileName) - FNamePos)
Parameter.Quiet = True
Parameter(docFName, "Hoehe") = 300
InventorVb.DocumentUpdate()
Next

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 12. Dez. 2013 11:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Nochmal eine Frage: Ich bekomme das ganze leider nicht in ein Formular gepackt. Eine eine Idee wie das gehen könnte?

Das einzige was klappt, wenn ich in die Baugruppe, wo der iLogic Code liegt, noch zusätliche Benutzerparameter schreibe:
Formular_Laenge
Formular_Breite
Formular_Hoehe

und in den iLogic Code dann diesen Teil:

Code:

iLogicForm.Show("Wuerfel")

Dim openDoc As Document
openDoc = ThisDoc.Document

Dim docFile As Document
For Each docFile In openDoc.AllReferencedDocuments

Dim FNamePos As Long
FNamePos = InStrRev(docFile.FullFileName, "\", -1)
Dim docFName As String
docFName = Right(docFile.FullFileName, Len(docFile.FullFileName) - FNamePos)
Parameter.Quiet = True

Parameter(docFName, "Hoehe") = Parameter("Formular_Laenge")
Parameter(docFName, "Laenge") = Parameter("Formular_Breite")
Parameter(docFName, "Breite") = Parameter("Formular_Hoehe")

InventorVb.DocumentUpdate()

Next


Klappt aber nur Halb, muss die Regel 2x aurufen, damit die Paramter übergeben werden....

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 12. Dez. 2013 11:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

gib mal ein

Code:
RuleParametersOutput()

vor dem

Code:
InventorVb.DocumentUpdate()

ein. Sollte dann eigentlich beim einmaligen Aufruf durchlaufen.

Gruß Chris

Edit: Das mit dem Formular.... Ist so wie du es gemacht hast, mit den Parametern, sicher der einfachste Weg.

[Diese Nachricht wurde von Chris 31 am 12. Dez. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 12. Dez. 2013 13:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Geht leider nicht, das Modell wird erst aktualisiert, wenn ich die Regel ein 2tes mal starte.

Denke beim aufrufen der Regel arbeitet die iLogic so:

- Formular startet
- Code wird abgearbeitet
- ändern der Parameter
- OK Button
- Parameter werden in die Benutzerparameter geschrieben

Neustart der Regel:

- Formular startet
- Code wird abgearbeitet
- Neue Benutzerparameter werden in die Parameter des Würfels übergeben
- ändern der Parameter
- OK Button
- Parameter werden in die Benutzerparameter geschrieben

usw usw

Eigentlich dürte der Code erst ausgeführt wenn

- ein neuer Wert ins Formular eingetragen wird
oder
- das Formular geschlossen wird (mit OK Button)

 

[Diese Nachricht wurde von iUser am 12. Dez. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 12. Dez. 2013 14:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Wie startest du denn die Regel?

Was ist denn, wenn du den Aufruf des Formulars raus nimmst, die Regel auf automatisch ausführen stellst und das Formular von Hand aufrufst, die neuen Werte eingibst und dann auf OK klickst?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 12. Dez. 2013 14:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von Chris 31:
Wie startest du denn die Regel?

zb Rechte Maustaste: Regel ausführen
Soll, wenns klappt später aber per Ereignisauslöser starten (nach Laden der Baugruppe)

Zitat:
Original erstellt von Chris 31:
Was ist denn, wenn du den Aufruf des Formulars raus nimmst, die Regel auf automatisch ausführen stellst und das Formular von Hand aufrufst, die neuen Werte eingibst und dann auf OK klickst?

Habs mal so probiert:

Aufruf des Formulars rausgenommen und in eine neue Regel geschrieben.
Diese Regel wird beim starten ausgelöst, so das ich gleich das Formular habe.
Dann diverse Ereignisauslöser probiert, die das Script starten sollen, wenn
- beliebige Modellparameteränderung

klappt leider auch nicht....

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 12. Dez. 2013 14:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Sehr seltsam.

Normalerweise sollte ja die Parameteränderung reichen, damit die Regel abgearbeitet wird.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 12. Dez. 2013 14:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von iUser:

Habs mal so probiert:

Aufruf des Formulars rausgenommen und in eine neue Regel geschrieben.
Diese Regel wird beim starten ausgelöst, so das ich gleich das Formular habe.
Dann diverse Ereignisauslöser probiert, die das Script starten sollen, wenn
- beliebige Modellparameteränderung

klappt leider auch nicht....


Was meinst du denn mit diverse Ereignisauslöser?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 12. Dez. 2013 15:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

na, ich hatte verschiedene probiert.

Habs nun so gelöst:

OK-Button aus dem Formular rausgeschmissen und
Regel direkt ins Formular eingebunden, dann bekommt
man einen weiteren "Knopf", der die Regel auslöst.

Im Grunde funktioniert nun alles, obwohl schick ist es nicht.
Was mir nicht so gefällt, das man in der obersten Baugruppe, in welcher das Formular liegt, sich noch Pseudo-Parameter erstellen muss. Ist wohl so.

Danke

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


Sehen Sie sich das Profil von Chris 31 an!   Senden Sie eine Private Message an Chris 31  Schreiben Sie einen Gästebucheintrag für Chris 31

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 12. Dez. 2013 15:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für iUser 10 Unities + Antwort hilfreich

Ja, geht leider nicht anders, weil du ja Parameter brauchst, in die du deine Werte schreibst, bevor du sie in deiner Regel übergibst.

Warum du die Regel manuell aufrufen musst, damit sie durchläuft verstehe ich zwar immer noch nicht, aber wenn es nicht anders geht, dann ist das wohl leider so.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

iUser
Mitglied



Sehen Sie sich das Profil von iUser an!   Senden Sie eine Private Message an iUser  Schreiben Sie einen Gästebucheintrag für iUser

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 13. Dez. 2013 07:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Bin froh, erstmal eine Lösung zu haben. Wenn jemand noch ne andere Idee hat, nur her damit   

Edit:

Würde gerne noch das Script um 2 Regeln erweitern, vielleicht
kann mir da einer noch helfen:

1. Der Würfel soll Fasen haben, die sollen ebenfalls in der obersten Baugruppe aus oder eingeblendet werden. Normal wäre wohl

Code:
Feature.IsActive("Fase") = True
Feature.IsActive("Fase") = False

richtig, aber der Würfel sitzt ja leider etwas tiefer

2. Weiterhin hätte ich gerne eine Regel, die mir die oberste Baugruppe speichert. Dabei sollen
a) Alle Regeln und Formulare gelöscht werden
b) Alle ausgeblendeten Features in den unteren Bauteilen (Fasen, Bohrungen etc) löschen
c) Alle benutzerparamter in der obersten Baugruppe löschen

Vielleicht hat der eine oder andere ne Idee dazu

[Diese Nachricht wurde von iUser am 13. Dez. 2013 editiert.]

[Diese Nachricht wurde von iUser am 13. Dez. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz