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

ipart Mitglieder automatisch trennen, Makro

3olo

Guest
Salve,
sbuffando e a fatica sojno riuscito a crearmi una macro in Erfinder i per la generazione automatica dei membri di una ipart e la relative conversiojne in formato step. la uso con soddisfazione da un po’ e fa tutto da sola. nello specifico:
- Die besten Ergebnisse i membri di un ipart;
-li mette tutti in un assieme pilota e lo salva;
-ltutti tali files vengono esportati in step e messi in una cartella .
spettacolo finora: però ho l’esigenza di creare migliaia di membri , tenere per me l’ipart e fornire solamente i membri ,però il problema è che ovviamente una volta aperti non trovano il collegamento con l’ipart(non essendoci) e danno unmisse a cui si deve cio’ è molto fastidioso.
vorrei quindi modificare la macro in modo che ogni membro dell’ipart venga scollegato dall’ipart,in modo da non aver più messaggi.
cercando nella guida di Erfinder api ho trovato una funzione che forse fa al caso mio:
ipartmember.breaklinktofactory()
Beschreibung
Verfahren, das den Link zur Stammfabrik bricht und das Bauteil in ein abgeleitetes Teil umwandelt.

dovrebbe essere quest ache mi serv.
però essendo un po’ limitato io con vba non sono in grado di inserirla nella mia macro in modo che funzioni.
c’è qualche buon anima che mi può aiutare? se non riuscite a modificare la macro mi basterebbe averne una nuova in cui magari si scolleghino tutti i parti inseriti in un assieme.
vi prego aiutatemi che non so più dove sbattere la testa. vi ringrazio tanto in anticipo



öffentliche sub addipartoccurrence()
Öffnen Sie das Fabrikdokument unsichtbar.
dim ofactorydoc als Teildokumentation
set ofactorydoc = thisapplication.documents.open("c:\disegni Erfinder\prova ipart1.ipt", falsch)

' einen Verweis auf die Komponentendefinition setzen.
dim ocompdef als Teilkomponentendefinition
ocompdef = vonactorydoc.componentdefinition

Achten Sie darauf, dass wir eine Fabrik haben.
wenn ocompdef.isipartfactory = falsch dann
msgbox "Erwähltes Dokument ist keine Fabrik.", vbexclaming
Ausgang Sub
Ende

' einen Hinweis auf die Fabrik.
dim oipartfactory as ipartfactory
Oipartfactory = ocompdef.ipartfactory

Die Anzahl der Reihen in der Fabrik.
dim inumrows als ganze Zahl
Inumrows = oipartfactory.tablerows.count

' ein neues Montagedokument erstellen
dim odoc als Montagedokument
set odoc = thisapplication.documents.add(kassemblydocumentobject, , true)

dim ooccs als Komponenteoccurrences
ooccs = odoc.componentdefinition.occurrences

dim opos als Matrix
set opos = thisapplication.transientgeometry.creatematrix

dim ostep als Doppel
ostep = 0#
dim irow as long

' Fügen Sie ein Ereignis für jedes Mitglied in der Fabrik hinzu.
für irow = 1 zu Inumrows

ostep = ostep + 10

Fügen Sie eine Übersetzung entlang der x-Achse hinzu
opos.settranslation thisapplication.transientgeometry.createvector(ostep, ostep, 0)

dim oocc als Komponente
oocc = ooccs.addipartmember("c:\disegni Erfinder\prova ipart1.ipt", opos, irow)

Nächste

'odoc.save
call odoc.saveas("c:\disegni Erfinder\assiemecancella.iam", true)

dim orefdoc als Dokument
für jedes orefdoc in odoc.referenceddocuments
ipartmember.breaklinktofactory (orefdoc)
Call exporttostep(orefdoc)

Nächste


Endteil

Public Sub exporttostep(odoc als Dokument)

dim exportpath als string
exportpath = "c:\disegni Erfinder\stpcanc\"

' Holen Sie den Schritt Übersetzer Add-in.
dim osteptranslator als Übersetzeraddin
set osteptranslator = thisapplication.applicationaddins.itembyid("{90af7f40-0c01-11d5-8e83-0010b541cd80}")

wenn osteptranslator nichts ist
msgbox "Kann nicht auf Schritt Übersetzer zugreifen."
Ausgang Sub
Ende

dim ocontext als Übersetzungskontext
set ocontext = thisapplication.transientobjects.createtranslationcontext
dim ooptions als namevaluemap
set ooptions = thisapplication.transientobjects.createnamevaluemap
wenn osteptranslator.hassavecopyasoptions(thisapplication.activedocument, ocontext, ooptions) dann
' setzen Anwendungsprotokoll.
' 2 = ap 203 - Konfiguration gesteuert
' 3 = ap 214 - Automobildesign
ooptions.value("applicationprotocoltype") = 3

Andere Optionen...
'ooptions.value("autor") = "
'ooptions.value("Autorisierung") = "
'ooptions.value("description") = "

ooptions.value("Organisation") = "--"

ocontext.type = kfilebrowseiomechanism

dim odata als Datenmedium
set odata = thisapplication.transientobjects.createdatamedium


'Format Dateiname
dim fnamepos as long
'Post des letzten Rückens
fnamepos = instrrev(odoc.fullfilename, "\", -1)
dim docfname als String
'Dateiname mit Erweiterung
docfname = strings.right(odoc.fullfilename, len(odoc.fullfilename) - fnamepos)
'Dateiname ohne Erweiterung
dim Shortname als String
Kurzname = strings.left(docfname, len(docfname) - 4)

odata.filename = exportpath & shortname & ".stp"

call osteptranslator.savecopyas(odoc, ocontext, ooptions, odata)
Ende
Endteil
 
Ich glaube, das funktioniert. .
Code:
dim opart als partdocument
für jedes Opart in odoc.referenceddocuments
opart.componentdefinition.ipartmember.breaklinktofactory
Nächste
 
Vielen Dank, wo nehmen Sie es? vor dem Unterende?
Ich würde vorher sagen:
dim orefdoc als Dokument
für jedes orefdoc in odoc.referenceddocuments
imemberpart.breaklinktofactory (orefdoc)
Call exporttostep(orefdoc)

Nächste

aus dem er eliminiert
imemberpart.breaklinktofactory (orefdoc)

testen auf etwas nicht lebenswichtig sowieso, aus den (nur und schnell) Tests, die ich tat die Operation scheint die erforderliche, aber ich habe nicht vertieft, was mit den Iparts mit gebrochener Verbindung passiert..
 
Sehr freundlich! Ich versuche es zu wissen! und wenn Sie ein Makro mit diesem Code machen möchten, der mir ein Set mit den Mitgliedern des ipart öffnet und mich abschaltet? könntest du einen schnellen Entwurf runterwerfen? so umpassamdo die Teilegeneration und Export Schritt.
 
Ich versuchte und arbeitete an einigen Teilen, an anderen nicht, in dem Sinne, dass es die Links unterbricht, aber dann, um tatsächliche Änderungen zu machen, sollte ich die erstellte Pilot-Axiem (und alle seine Komponenten natürlich) aber, wenn ich versuche, alle Erfinderunfälle zu retten, wahrscheinlich für die große Anzahl von Komponenten gespeichert werden.
Ich dachte dann, die "save2" Funktion hinzuzufügen, die in der Erfinder Bienenführer relativ zur Rettung der Baugruppen und verwandten Komponenten ist, aber ich verstehe nicht, wie man es schreibt, können Sie mir helfen?
Ich habe versucht
odoc.save2( true, ) aber nichts
call odoc.save2(true,) gar nichts damit
odoc.save2(true,0) nichts

Können Sie mir bitte helfen? Ich würde zwischen den Breaklink und den Export der Komponenten einfügen, ich denke, es ist richtig, es dort zu setzen, aber sagen Sie mir
 
Ich habe zu dieser Zeit nicht viel Zeit, wenn Sie Geduld haben, versuche ich, ein Auge zu geben. Ich glaube nicht, dass Crashs auf die Menge der Komponenten zurückzuführen sind: Erfinder würde in diesem Fall geworfen werden. Aber ich weiß nicht, was mit den getrennten Teilen passiert, ich benutze die wenigen Teile und ich habe keine Ahnung, wie sie sich verhalten... Du musst darüber lernen.
 
Tut mir leid zu unterbrechen, danke für Ihre Geduld!
wenn Sie Zeit haben, wenn Sie einen Blick nehmen möchten
 

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