• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Wie kann man eine Ilogic-Regel auf mehreren Dateien ausführen?

  • Ersteller Ersteller windreef
  • Erstellt am Erstellt am

windreef

Guest
Guten Morgen, ich sollte eine ilogische Regel auf vielen Tischdateien (inv2023) durchführen, Ich kann aus zwei Gründen keinen Event-Trigger in die Dateien eingeben, der erste, den ich später entfernen sollte, weil der Kunde es nicht will (auflösbar, indem er eine Kopie der Dateien vor dem Hinzufügen des Triggers) , nach dem Grund : tatsächlich zum Zeitpunkt ich die Datei öffnen und den Trigger einfügen kann ich sicher starten die Regel und ich beenden.
Ich fragte mich, ob es einen Batch-Modus oder eine geplante Operation gab. Ich fand eine App im ilogic rule Batch Tool Store, aber es funktioniert bis zum inv 2022.
Dank allen
 
Sie können eine externe Regel ausführen und den Event-Trigger auf idw-Boards aktivieren, ohne direkt an das Kundendesign zu denken
1731666331497.pngdann geht es darum, den Tisch zu öffnen, auf die Regel zu warten, um zu tun, was er tun muss und dann speichern, es hängt von der Anzahl der Tabellen, wie/wo sie platziert / benannt usw. usw.
 
Sie können eine externe Regel ausführen und den Event-Trigger auf idw-Boards aktivieren, ohne direkt an das Kundendesign zu denken
Anhang anzeigen 72657dann geht es darum, den Tisch zu öffnen, auf die Regel zu warten, um zu tun, was er tun muss und dann speichern, es hängt von der Anzahl der Tabellen, wie/wo sie platziert / benannt usw. usw.
ah ok danke, ich wusste nicht, dass selbst die Ereignisauslöser als extern eingestellt werden könnten.

Vielen Dank
 
Guten Morgen, ich habe ein ähnliches Problem, das ich bereits veröffentlicht hatte, aber das hatte keine Antworten erhalten.
Viele Kunden senden mir ihre Dateien im Schrittformat. Ich öffne sie und spare sie, so bekomme ich iam und ipt, aber sie enthalten nicht die Informationen, die ich brauche, um ein maximales Angebot zu machen.
Ich habe zwei ilogische Regeln erstellt, die ich in Folge starten: Man berechnet die Länge des Ipt, das ich geöffnet habe, und der andere fragt mich einige Informationen, die ich ausfüllen muss.
die beiden Regeln funktionieren perfekt, wenn ich das einzelne ipt oder das Doppelklick (das ist die gleiche Sache).
Ist es möglich, einen Befehl zu erstellen, der von iam startet, in dem er mich bittet, einen ipt auszuwählen und an diesem Punkt wirft er die beiden Regeln in der Reihenfolge auf diese einzelne Datei, ohne sie alle einzeln öffnen zu müssen?
Dank denen, die die Geduld haben, zu antworten
 
Ist es möglich, einen Befehl zu erstellen, der von iam startet, in dem er mich bittet, einen ipt auszuwählen und an diesem Punkt wirft er die beiden Regeln in der Reihenfolge auf diese einzelne Datei, ohne sie alle einzeln öffnen zu müssen?
Prova:
Code:
dim rulename1 als String = "myexternalrule1" 'nome Regel1
dim rulename2 als String = "myexternalrule2" 'nome Regel1
dim asm als Montagedokument = thisdoc.document

' Aufforderung an den Benutzer, ein einzelnes Teil auszuwählen
dim invapp als Erfinder. Anwendungsbereich
dim selectobject as object = invapp.commandmanager.pick(selectionfilterenum.kassemblyoccurrencefilter, "select a part")

wenn selektiertesObjekt nicht nichts ist und auch Art von selektiertenObjekten ist Komponentegenauigkeit dann
dim selektiert als Komponenteoccurrence = ctype(selectedobject, partoccurrence)
dim doc als Dokument = selektiert.definition.document

Die erste ilogische Regel
ilogicvb.automation.runexternalrule(doc, rulename1)

' die zweite ilogische Regel ausführen
ilogicvb.automation.runexternalrule(doc, rulename2)

messagebox.show("beide Regeln erfolgreich auf dem ausgewählten Teil ausgeführt.", "success", messageboxbuttons.ok, messageboxicon.information)
andere
messagebox.show("kein gültiger Teil ausgewählt.", "error", messageboxbuttons.ok, messageboxicon.error)
Ende
 
Prova:
Code:
dim rulename1 als String = "myexternalrule1" 'nome Regel1
dim rulename2 als String = "myexternalrule2" 'nome Regel1
dim asm als Montagedokument = thisdoc.document

' Aufforderung an den Benutzer, ein einzelnes Teil auszuwählen
dim invapp als Erfinder. Anwendungsbereich
dim selectobject as object = invapp.commandmanager.pick(selectionfilterenum.kassemblyoccurrencefilter, "select a part")

wenn selektiertesObjekt nicht nichts ist und auch Art von selektiertenObjekten ist Komponentegenauigkeit dann
dim selektiert als Komponenteoccurrence = ctype(selectedobject, partoccurrence)
dim doc als Dokument = selektiert.definition.document

Die erste ilogische Regel
ilogicvb.automation.runexternalrule(doc, rulename1)

' die zweite ilogische Regel ausführen
ilogicvb.automation.runexternalrule(doc, rulename2)

messagebox.show("beide Regeln erfolgreich auf dem ausgewählten Teil ausgeführt.", "success", messageboxbuttons.ok, messageboxicon.information)
andere
messagebox.show("kein gültiger Teil ausgewählt.", "error", messageboxbuttons.ok, messageboxicon.error)
Ende
Es ist perfekt, es funktioniert großartig. Vielen Dank.
Wissen Sie auch, welcher Befehl den Ersatz des Erscheinungsbildes eliminiert, das zu Beginn der ersten Regel eingefügt werden soll? Auf diese Weise wissen die ausgewählten Teile und ich, was ich bereits getan habe und was nicht.
 
Es ist perfekt, es funktioniert großartig. Vielen Dank.
Wissen Sie auch, welcher Befehl den Ersatz des Erscheinungsbildes eliminiert, das zu Beginn der ersten Regel eingefügt werden soll? Auf diese Weise wissen die ausgewählten Teile und ich, was ich bereits getan habe und was nicht.
Hallo, da Sie viel mit Kundenschritten arbeiten, kommen Sie jemals in Zoll und Abstrahlwinkel zur Messeinheit? für mich praktisch immer und in der Konvertierung gibt es keine Möglichkeit, sie automatisch zu ändern, jede Datei, die ich zu den Einstellungen gehen muss und sie manuell ändern
 
Hallo, da Sie viel mit Kundenschritten arbeiten, kommen Sie jemals in Zoll und Abstrahlwinkel zur Messeinheit? für mich praktisch immer und in der Konvertierung gibt es keine Möglichkeit, sie automatisch zu ändern, jede Datei, die ich zu den Einstellungen gehen muss und sie manuell ändern
immer passiert. Ich verschwende keine Zeit: Ich gehe zu den Dokumenteneinstellungen und ändere sie.
Wie auch immer, wie ein Programmierer-Freund sagte: "Wenn Sie es als Befehl tun können, können Sie es als Code tun."
Aber ich bin kein Programmierer und arrangiere.
 
immer passiert. Ich verschwende keine Zeit: Ich gehe zu den Dokumenteneinstellungen und ändere sie.
Es ist auch das, was ich tue, aber wenn es einen Automatismus gäbe, wäre es schneller, wenn man es auf hundert Dateien machen muss, bricht es die Boxen. Dank und gute Arbeit
 
Es ist perfekt, es funktioniert großartig. Vielen Dank.
Wissen Sie auch, welcher Befehl den Ersatz des Erscheinungsbildes eliminiert, das zu Beginn der ersten Regel eingefügt werden soll? Auf diese Weise wissen die ausgewählten Teile und ich, was ich bereits getan habe und was nicht.
Vielleicht musst du deine erste Regel sehen, um zu verstehen, was du bekommen willst. .
Ich bin kein Programmierer, aber ich bin sicher, dass dir jemand hier helfen kann.
 
Es ist auch das, was ich tue, aber wenn es einen Automatismus gäbe, wäre es schneller, wenn man es auf hundert Dateien machen muss, bricht es die Boxen. Dank und gute Arbeit
Nachweis questo:
Code:
'------ Start von ilogic -----

'Eingabe vom Benutzer vergessen'
ounit = inputradiobox("wählen Sie eine Maßeinheit", "millimeter", "inch", true, "ilogic")

wenn ounit = wahr ist
'Set to Millimeter
ouom_1 = Einheitentypeenum.kmillimeterlengthunits
andere
"Einsatz"
ouom_1 = Einheitentypeenum.kinchlengthunits

Ende

'das offene Dokument definieren
dim opendoc als Dokument
opendoc = thisdoc.document

'Überprüfen Sie alle Dateien im offenen Dokument referenziert
dim docfile als Dokument
für jede docfile in opendoc.allreferenceddocuments
Nur Teildateien ansehen
wenn docfile. documenttype = kpartdocumentobject dann
'Format Dateiname
dim fnamepos as long
fnamepos = instrrev(docfile.fullfilename, "\", -1)
dim docfname als String
docfname = rechts(docfile.fullfilename, len(docfile.fullfilename) - fnamepos)
'Set Längeneinheiten
docfile.unitsofmaßnahme.lengthunits = ouom_1
'Wiederherstellung der Anzeige
docfile. Neuaufbau
Ende
Nächste
ilogicvb.updatewhendone = true
 
Nachweis questo:
Code:
'------ Start von ilogic -----

'Eingabe vom Benutzer vergessen'
ounit = inputradiobox("wählen Sie eine Maßeinheit", "millimeter", "inch", true, "ilogic")

wenn ounit = wahr ist
'Set to Millimeter
ouom_1 = Einheitentypeenum.kmillimeterlengthunits
andere
"Einsatz"
ouom_1 = Einheitentypeenum.kinchlengthunits

Ende

'das offene Dokument definieren
dim opendoc als Dokument
opendoc = thisdoc.document

'Überprüfen Sie alle Dateien im offenen Dokument referenziert
dim docfile als Dokument
für jede docfile in opendoc.allreferenceddocuments
Nur Teildateien ansehen
wenn docfile. documenttype = kpartdocumentobject dann
'Format Dateiname
dim fnamepos as long
fnamepos = instrrev(docfile.fullfilename, "\", -1)
dim docfname als String
docfname = rechts(docfile.fullfilename, len(docfile.fullfilename) - fnamepos)
'Set Längeneinheiten
docfile.unitsofmaßnahme.lengthunits = ouom_1
'Wiederherstellung der Anzeige
docfile. Neuaufbau
Ende
Nächste
ilogicvb.updatewhendone = true
Vielleicht habe ich es als Event-Trigger bei der Dateiöffnung gesetzt, dank tausend, später versuche ich es.
 
Vielleicht musst du deine erste Regel sehen, um zu verstehen, was du bekommen willst. .
Ich bin kein Programmierer, aber ich bin sicher, dass dir jemand hier helfen kann.
die erste Regel wird von einer Stelle genommen und gibt mir die 3 Dimensionen eines Profils. Ich nehme die längste und erkläre, dass das die "Länge" ist (ich muss berechnen, wie viele Meter dieses Profils ich in allem brauche). Dann prüfe ich das Goldmaterial, um mir zu erkennen, dass das Profil bereits berechnet wurde.
das Problem ist, dass, um die Goldfarbe zu sehen, muss ich zunächst den Ersatz des Aussehens eliminieren, der zugewiesen wird, wenn Sie öffnen und einen Schritt speichern und das den einzelnen Teilen zugeordnet ist.

diese letzten Zeilen der Regel:

'schreibt die maximale Messung in Modelliproprierties.
iproperties.value("custom", "length") = maxlength.tostring("###")

iproperties.material = "gold"
 
die erste Regel wird von einer Stelle genommen und gibt mir die 3 Dimensionen eines Profils. Ich nehme die längste und erkläre, dass das die "Länge" ist (ich muss berechnen, wie viele Meter dieses Profils ich in allem brauche). Dann prüfe ich das Goldmaterial, um mir zu erkennen, dass das Profil bereits berechnet wurde.
das Problem ist, dass, um die Goldfarbe zu sehen, muss ich zunächst den Ersatz des Aussehens eliminieren, der zugewiesen wird, wenn Sie öffnen und einen Schritt speichern und das den einzelnen Teilen zugeordnet ist.

diese letzten Zeilen der Regel:

'schreibt die maximale Messung in Modelliproprierties.
iproperties.value("custom", "length") = maxlength.tostring("###")

iproperties.material = "gold"
Ich reread den Code und ich denke, das Problem ist hier:


Targetappearance = partdoc.assets.item("clear - blue")
Fang
dim sourceappearance as Asset = thisapplication.assetlibraries.item("314de259-5443-4621-bfbd-1730c6cc9ae9").
Targetappearance = sourceappearance.copyto(partdoc)


Ich versuchte es als Kommentar zu setzen, aber die voreingestellte hellblaue Farbe bleibt
 
die erste Regel wird von einer Stelle genommen und gibt mir die 3 Dimensionen eines Profils. Ich nehme die längste und erkläre, dass das die "Länge" ist (ich muss berechnen, wie viele Meter dieses Profils ich in allem brauche). Dann prüfe ich das Goldmaterial, um mir zu erkennen, dass das Profil bereits berechnet wurde.
das Problem ist, dass, um die Goldfarbe zu sehen, muss ich zunächst den Ersatz des Aussehens eliminieren, der zugewiesen wird, wenn Sie öffnen und einen Schritt speichern und das den einzelnen Teilen zugeordnet ist.

diese letzten Zeilen der Regel:

'schreibt die maximale Messung in Modelliproprierties.
iproperties.value("custom", "length") = maxlength.tostring("###")

iproperties.material = "gold"
Ich würde es vorziehen, das Material nicht zu ändern, sondern nur das Aussehen zusammen. .
Diese Regel fügt Farbänderung nach Anwendung der 2 Regeln hinzu (es ändert den Teil nicht):

Code:
dim rulename1 als String = "1" 'Name der Regel 1
dim rulename2 als String = "2" 'Name der Regel 2


dim topasm als Montagedokument = thisdoc.document

' Aufforderung an den Benutzer, ein einzelnes Teil auszuwählen
dim invapp als Erfinder. Anwendungsbereich
dim selectobject as object = invapp.commandmanager.pick(selectionfilterenum.kassemblyoccurrencefilter, "select a part")

wenn selektiertesObjekt nicht nichts ist und auch Art von selektiertenObjekten ist Komponentegenauigkeit dann
dim selektiert als Komponenteoccurrence = ctype(selectedobject, partoccurrence)
dim doc als Dokument = selektiert.definition.document

Die erste ilogische Regel
ilogicvb.automation.runexternalrule(doc, rulename1)

' die zweite ilogische Regel ausführen
ilogicvb.automation.runexternalrule(doc, rulename2)

' die Farbe des Teils auf r255 g143 b47 ändern
dim trans als Transaktion = thisapplication.transactionmanager.starttransaction(topasm, "set custom color")
Versuch
' erstellen oder abrufen Sie den Auftritt Asset
dim customappearance als Asset
Versuch
customappearance = topasm.assets.item("customcolor")
Fang ex als Ausnahme
customappearance = topasm.assets.add(assettypeenum.kassettypeappearance, "generic", "customcolor")
Ende Versuch

' die Farbe des Vermögenswerts ändern
dim colorassetvalue als colorassetvalue = customappearance.item("generic_diffuse")
colorassetvalue.value = invapp.transientobjects.createcolor(255, 143, 47)

' das Aussehen auf das ausgewählte Teil anwenden
selectpart.appearance = Customappearance

messagebox.show("beide Regeln ausgeführt und Teilfarbe erfolgreich aktualisiert.", "success", messageboxbuttons.ok, messageboxicon.information)
Fang ex als Ausnahme
messagebox.show("error set part color: " & ex.message, "error", messageboxbuttons.ok, messageboxicon.error)
endlich
trans.end()
Ende Versuch
andere
messagebox.show("kein gültiger Teil ausgewählt.", "error", messageboxbuttons.ok, messageboxicon.error)
Ende
Allerdings könnte man so alles in einen Klick auf alle Dateien werfen, ohne die Teile einzeln auswählen zu müssen.
 
Ich würde es vorziehen, das Material nicht zu ändern, sondern nur das Aussehen zusammen. .
Diese Regel fügt Farbänderung nach Anwendung der 2 Regeln hinzu (es ändert den Teil nicht):

Code:
dim rulename1 als String = "1" 'Name der Regel 1
dim rulename2 als String = "2" 'Name der Regel 2


dim topasm als Montagedokument = thisdoc.document

' Aufforderung an den Benutzer, ein einzelnes Teil auszuwählen
dim invapp als Erfinder. Anwendungsbereich
dim selectobject as object = invapp.commandmanager.pick(selectionfilterenum.kassemblyoccurrencefilter, "select a part")

wenn selektiertesObjekt nicht nichts ist und auch Art von selektiertenObjekten ist Komponentegenauigkeit dann
dim selektiert als Komponenteoccurrence = ctype(selectedobject, partoccurrence)
dim doc als Dokument = selektiert.definition.document

Die erste ilogische Regel
ilogicvb.automation.runexternalrule(doc, rulename1)

' die zweite ilogische Regel ausführen
ilogicvb.automation.runexternalrule(doc, rulename2)

' die Farbe des Teils auf r255 g143 b47 ändern
dim trans als Transaktion = thisapplication.transactionmanager.starttransaction(topasm, "set custom color")
Versuch
' erstellen oder abrufen Sie den Auftritt Asset
dim customappearance als Asset
Versuch
customappearance = topasm.assets.item("customcolor")
Fang ex als Ausnahme
customappearance = topasm.assets.add(assettypeenum.kassettypeappearance, "generic", "customcolor")
Ende Versuch

' die Farbe des Vermögenswerts ändern
dim colorassetvalue als colorassetvalue = customappearance.item("generic_diffuse")
colorassetvalue.value = invapp.transientobjects.createcolor(255, 143, 47)

' das Aussehen auf das ausgewählte Teil anwenden
selectpart.appearance = Customappearance

messagebox.show("beide Regeln ausgeführt und Teilfarbe erfolgreich aktualisiert.", "success", messageboxbuttons.ok, messageboxicon.information)
Fang ex als Ausnahme
messagebox.show("error set part color: " & ex.message, "error", messageboxbuttons.ok, messageboxicon.error)
endlich
trans.end()
Ende Versuch
andere
messagebox.show("kein gültiger Teil ausgewählt.", "error", messageboxbuttons.ok, messageboxicon.error)
Ende
Allerdings könnte man so alles in einen Klick auf alle Dateien werfen, ohne die Teile einzeln auswählen zu müssen.
Vielen Dank für Ihre Verfügbarkeit. die Codes zusammenstellen und es funktioniert.
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben