Hallo Sonti,
was meinst du damit, den Vorgang umgekehrt ausführen? Aus einem vorhandenen Part ein Makro machen, das dann wieder jemandem zuschicken und der lässt das laufen und bekommt ein neues Part, was aber featuretechnisch identisch aufgebaut ist?
Klar kann man das machen. Du musst einfach nur die Featurestruktur analysieren (natürlich inklusive dem ganzen Geraffeln, an das man als normaler User nicht denkt wie Kamera, Lichter, Ebenen, Kommentare, selbstredend allen Dokumentenoptionen und Dateieigenschaften, usw.), dazu könntest du ModelDoc2::FirstFeature, Feature::GetNextFeature, Feature::GetFirstSubFeature, Feature::GetNextSubFeature, Feature::GetDefinition usw. benutzen. Das ganze merkst du dir dann in einer schönen Datenstruktur (z.B. einer XML Datei, dann kannst du gleich richtig gut glänzen "Tool XYZ ist XML kompatibel" - oh, dann muss es ja gut sein).
Dann suchst du dir aus der API die passenden Befehle raus, um die ganzen Features wieder zu erzeugen; die fangen praktisch alle mit Create an. Wenn du dabei auf (die nicht ganz abwegige) Idee kommst auf diese Art und Weise deine Dokumente wieder abwärtskompatibel zu speichern soltlest du darauf achten, dass diese API Befehle auch in den alten Versionen vorhanden sind und keine Nummer am Ende haben, sprich fehlerkorrigiert oder erweitert wurden.
Das ganze schreibst du dann entweder in einem Texteditor oder exportierst aus dem VBA-Editor (der ja nur SWP Dateien erstellt) das ganz, bereinigst es etwas und speicherst das als SWB (das gute alte SolidWorks Basic). Eh voila.
Bleibt nur noch die Frage warum jemand so einen Riesenaufwand betreiben wollte; im Falle von Partservern mit festgelegtem Aufbau, der aus einer Datenbank gelesen und immer auf dieselbe Weise aufgebaut werden und mehrere Versionen bedienen müssen macht das Sinn, für den "normalen" Hausgebrauch sehe ich da kein Verhältnis zwischen Aufwand und nutzen.
Ciao,
Stefan
------------------
Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de
Stefans SolidWorks Blog
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP