CaesarXXI
Guest
Bye to all,
Ich brauche Hilfe mit einer ilogischen Regel, ich bin kein Experte und dieser Code wird gemacht, indem Leimkopien auf das Netz genommen und ein wenig Intuition.
das letzte Ergebnis, das ich möchte, ist, dass ich, wenn ich speichern, automatisch das flache Modell in dwg in einem bestimmten Ordner (die mit der Regel erstellt wird) sowohl beim Speichern der Datei in “Umwelt” Blatt, als auch in “Umwelt” zusammen mit dem Befehl Modifca (so ohne die Datei wieder zu öffnen).
Ich habe 3 Regeln innerhalb der Blattdatei erstellt, aktiviert der erste "master" nach dem Speichern der Datei mit Ereignisauslöser; diese Regel sollte überprüfen, ob sie in "Umwelt" Blatt oder zusammen sind und laden Sie dann die kombinierte Regel zum Export der dwg. wahrscheinlich können Sie alles mit einer einzigen Regel tun, aber während meiner Versuche ist dies das Ergebnis am nächsten meiner Erwartungen.
alles funktioniert gut und ich würde es gerne mit dem Blatt, aber wenn ich versuche, mit dem Axiem zu ändern, bekomme ich einen Fehler und erspare nicht die neuen Geometrien.
die Fehlermeldung ist:

Hauptregel:
Regola per lamiera:
Regel für zusammen:
Kann mir jemand eine Lösung sagen? Danke.
Ich brauche Hilfe mit einer ilogischen Regel, ich bin kein Experte und dieser Code wird gemacht, indem Leimkopien auf das Netz genommen und ein wenig Intuition.
das letzte Ergebnis, das ich möchte, ist, dass ich, wenn ich speichern, automatisch das flache Modell in dwg in einem bestimmten Ordner (die mit der Regel erstellt wird) sowohl beim Speichern der Datei in “Umwelt” Blatt, als auch in “Umwelt” zusammen mit dem Befehl Modifca (so ohne die Datei wieder zu öffnen).
Ich habe 3 Regeln innerhalb der Blattdatei erstellt, aktiviert der erste "master" nach dem Speichern der Datei mit Ereignisauslöser; diese Regel sollte überprüfen, ob sie in "Umwelt" Blatt oder zusammen sind und laden Sie dann die kombinierte Regel zum Export der dwg. wahrscheinlich können Sie alles mit einer einzigen Regel tun, aber während meiner Versuche ist dies das Ergebnis am nächsten meiner Erwartungen.
alles funktioniert gut und ich würde es gerne mit dem Blatt, aber wenn ich versuche, mit dem Axiem zu ändern, bekomme ich einen Fehler und erspare nicht die neuen Geometrien.
die Fehlermeldung ist:


Code:
'Master'
dim odoc als Dokument = thisdoc.document
wenn odoc.documenttype = erfinder.documenttypeenum.kpartdocumentobject and odoc.subtype = "{9c464203-9bae-11d3-8bad-0060b0ce6bb4}" dann
wenn Art dieser Anwendung. activeeditobject ist dann Skizze
messagebox.show("Sie haben eine Skizze, die in einer Teildatei aktiv ist."
andere
ilogicvb.runrule("salva_modelopiatto")
Ende
'Assembly-Datei
wenn odoc.documenttype = erfinder.documenttypeenum.kassemblydocumentobject dann
wenn odoc.componentdefinition.isiassemblyfactory dann
messagebox.show("das ist eine iassemblyfactory", "i will stop")
zurück
andere, wenn odoc.componentdefinition.isiassemblymember dann
messagebox.show("das ist ein iassemblymember", "i will stop")
zurück
Ende
wenn Art dieser Anwendung. activeeditobject ist dann Skizze
messagebox.show("Sie haben eine Skizze aktiv in einer Montagedatei.", "Über die Skizze"
andere
ilogicvb.runrule("salva_modelopiatto_01")
Ende
Ende
Code:
' salva_modellopiatto
rusure = messagebox.show( _
"salva dwg dal modello piatto." - Ja.
& vblf & "premere ja per continuare." - Ja.
& vblf & "premere no per abortire". - Ja.
& vblf & "attenzione il cambio di spessore deve essere gestito a mano.", "ilogic - elabora dwg file ",messageboxbuttons.yesno)
wenn rusure = vbno dann
zurück
Ende
opath = thisdoc.path
aktuellestyle = Sheetmetal.getactivestyle()
codice_regola = rechts(currentstyle, 10)
num_part=iproperties.value("project", "part number")
codiceinizio = links(num_part, 3)
spezifia la cartella di destinazione per il dwg
vonolder = thisdoc.path & "\" & "laserdwg" & "\" & codiceinizio & "_" & codice_regola
'controlla se la cartella esiste, oppure la crea
wenn nicht system.io.directory.exists(ofolder) dann
system.io.directory.createdirectory(ofolder)
Ende
' --inizio-- questa parte funziona solo per la parte lamiera e non in modifica da assieme
dim odoc = thisapplication.activedocument
dim ocompdef als Blechkomponentendefinition = nichts
wenn odoc.documenttype = documenttypeenum.kassemblydocumentobject dann
dim assemdoc als Montagedokument = odoc
'dim odoc = thisapplication.documents.open(iptpathname, false)
ocompdef = assemdoc.componentdefinition.sheetmetalkomponentendefinition
sonstif odoc.documenttype = documenttypeenum.kpartdocumentobject dann
dim partdoc als partdocument = odoc
ocompdef = partdoc.componentdefinition'.sheetmetalcomponentdefinition
Ende
'controlla se esiste un modello piatto; altrimenti lo crea
wenn ocompdef.hasflatpattern = falsch dann
ocompdef.unfold
andere
ocompdef.flatpattern.edit
Ende
' --fine-- questa parte funziona solo per la parte lamiera e non in modifica da assieme
' --inizio-- solo per lamiera
'controlla se esiste un modello piatto; altrimenti lo crea
'dim odoc als Teildokumentation
'odoc = thisapplication.activedocument
'dim ocompdef als Blechkomponentendefinition
'ocompdef = odoc.componentdefinition
Wenn ocompdef.hasflatpattern = falsch dann
'ocompdef.unfold
'elsen'
'ocompdef.flatpattern.edit
Wenn
' --fine-- solo per lamiera
'settaggio dwg'
dim optionlist als list(von string) = neue list(von string)()
Optionlist.add("acadversion=2004")
optionlist.add("outerprofilelayer=0")
optionlist.add("interiorprofilelayer=0")
dim sout als String
Dim Spath als String
sout = "flat pattern dwg?acadversion=2004&outerprofilelayer=iv_interior_profile" _
+ "&invisiblelayers=iv_tangent;iv_feature_profile_down;iv_arc_centers;iv_bend;iv_bend_down;iv_tool_center;iv_tool_center_down;iv_feature_profile;iv_feature_profile_down"
für jeden Opt in Optionsliste
sout = sout & "&" & opt
Nächste
dim sfname als String
sfname = ofolder & "\" & thisdoc.filename(false) & ".dwg"
'esporta il file dwg
ocompdef.dataio.writedatatofile(sout, sfname)
dim osmdef als Blechkomponentendefinition
osmdef = odoc.Komponentendefinition
osmdef.flatpattern.exit
messagebox.show("dwg salvato in: " & sfname, " lamiera - esportazione completata!",messageboxbuttons.ok)
Code:
'salva_modellopiatto_01
wenn diese Anwendung.activedocumenttype <> documenttypeenum.kassemblydocumentobject dann
messagebox.show("e' un'assieme. (non fa niente, ma la regola viene eseguita; messaggio da eliminare)", "controllo")
Ausgang Sub
Ende
opath = thisdoc.path
aktuellestyle = Sheetmetal.getactivestyle()
codice_regola = rechts(currentstyle, 10)
num_part=iproperties.value("project", "part number")
codiceinizio = links(num_part, 3)
spezifia la cartella di destinazione per il dwg
vonolder = thisdoc.path & "\" & "laserdwg" & "\" & codiceinizio & "_" & codice_regola
'controlla se la cartella esiste, oppure la crea
wenn nicht system.io.directory.exists(ofolder) dann
system.io.directory.createdirectory(ofolder)
Ende
' --inizio-- questa parte funziona solo per la parte lamiera e non in modifica da assieme
dim odoc = thisapplication.activedocument
dim ocompdef als Blechkomponentendefinition = nichts
wenn odoc.documenttype = documenttypeenum.kassemblydocumentobject dann
dim assemdoc als Montagedokument = odoc
'dim odoc = thisapplication.documents.open(iptpathname, false)
ocompdef = assemdoc.componentdefinition.sheetmetalkomponentendefinition
sonstif odoc.documenttype = documenttypeenum.kpartdocumentobject dann
dim partdoc als partdocument = odoc
ocompdef = partdoc.componentdefinition'.sheetmetalcomponentdefinition
Ende
'controlla se esiste un modello piatto; altrimenti lo crea
wenn ocompdef.hasflatpattern = falsch dann
ocompdef.unfold
andere
ocompdef.flatpattern.edit
Ende
' --fine-- questa parte funziona solo per la parte lamiera e non in modifica da assieme
' --inizio-- solo per lamiera
'controlla se esiste un modello piatto; altrimenti lo crea
'dim odoc als Teildokumentation
'odoc = thisapplication.activedocument
'dim ocompdef als Blechkomponentendefinition
'ocompdef = odoc.componentdefinition
Wenn ocompdef.hasflatpattern = falsch dann
'ocompdef.unfold
'elsen'
'ocompdef.flatpattern.edit
Wenn
' --fine-- solo per lamiera
'settaggio dwg'
dim optionlist als list(von string) = neue list(von string)()
Optionlist.add("acadversion=2004")
optionlist.add("outerprofilelayer=0")
optionlist.add("interiorprofilelayer=0")
dim sout als String
Dim Spath als String
sout = "flat pattern dwg?acadversion=2004&outerprofilelayer=iv_interior_profile" _
+ "&invisiblelayers=iv_tangent;iv_feature_profile_down;iv_arc_centers;iv_bend;iv_bend_down;iv_tool_center;iv_tool_center_down;iv_feature_profile;iv_feature_profile_down"
für jeden Opt in Optionsliste
sout = sout & "&" & opt
Nächste
dim sfname als String
sfname = ofolder & "\" & thisdoc.filename(false) & ".dwg"
'esporta il file dwg
ocompdef.dataio.writedatatofile(sout, sfname)
dim osmdef als Blechkomponentendefinition
osmdef = odoc.Komponentendefinition
osmdef.flatpattern.exit
messagebox.show("dwg salvato in: " & sfname, " assieme - esportazione completata!",messageboxbuttons.ok)