Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Teile in der Baugruppe mit API in Ordner

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: Direct Editing in SOLIDWORKS
Autor Thema:   Teile in der Baugruppe mit API in Ordner (1413 mal gelesen)
Willi71
Mitglied
Konstrukteur


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

Beiträge: 34
Registriert: 27.08.2002

SWX2010 Premium SP2,0
Serverlizenz
DELL Precision T3400 Dualcore 3,2GHz; 4GB RAM
Microsoft OpticalWheelMouse USB
nVIDIA FX1700
WinXP Prof. SP3

erstellt am: 31. Jul. 2003 12: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

Hallo SWXSolidWorks Gemeinde,

ich möchte in einer Baugruppe mittels eines Macros alle Teile mit einem Bestimmten Namen (z.B. "R0805") in einen Ordner (z.B. "SMT") verschieben. Ich habe aber in der APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) Hilfe keinen Befehel dafür gefunden. Hat irgendwer vielleicht eine Idee wie man das machen kann oder habe ich in der Hilfe etwas übersehen.

Bin für jeden Hinweis dankbar.

Danke,
Gernot

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 31. Jul. 2003 13:13    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 Willi71 10 Unities + Antwort hilfreich

Hi,

Dieses Problem ähnelt dem in einem anderen Beitrag beschriebenen Problem.
Siehe auch: http://ww3.cad.de/foren/ubb/Forum2/HTML/003737.shtml

Ich kann den grundlegenden Lösungsweg ja mal andeuten:
Wenn die Baugruppe offen ist, kannst Du die Teile und Unterbaugruppen prinzipiell einfach mit einem 'Speichern unter...' umkopieren. Die Referenzen der Baugruppe werden dabei richtig umgebogen.
Nun gibt es aber auch noch die sogenannten externen Referenzen (treten z.B. bei Teilebeziehungen und Kontextbeziehungen auf), die nicht automatisch angepasst werden. Hierfür gibt es eine Funktion ReplaceReferences. Diese kann allerdings nicht angewendet werden, wenn alle beteiligten Objekte geöffnet sind. Daher muss man zunächst den aktuellen Sitzungsstatus vermerken, einige Objekte (und Objekte, die diese Objekte referenzieren etc.) schliessen, Referenzen austauschen und kann danach den Sitzungsstatus wiederherstellen.

Das ist natürlich alles etwas grob. Das liegt vor allem daran, dass das eben nicht so ganz einfach ist, wenn man's richtig machen will...

Falls Du weitere Hilfe oder ein fertiges Programm benötigst, kannst Du mich natürlich auch gerne beauftragen...

Da Dein Problem dem im angesprochenen Thread erwähnten Problem ähnelt, kannst Du Dir ja vielleicht auch mit Zaggy die Kosten teilen...


Gruß,
  Danny

------------------
Danny Reinhold
Reinhold Software & Services

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

Willi71
Mitglied
Konstrukteur


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

Beiträge: 34
Registriert: 27.08.2002

SWX2010 Premium SP2,0
Serverlizenz
DELL Precision T3400 Dualcore 3,2GHz; 4GB RAM
Microsoft OpticalWheelMouse USB
nVIDIA FX1700
WinXP Prof. SP3

erstellt am: 31. Jul. 2003 13: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

Hallo Danny,

Vielen Dank für deine rasche Antwort, aber ich glaube ich habe das Problem schlecht erklärt, sorry. Typischer Fall von "Ich weiss was ich will und sag den anderen (unabsichtlich) nur die Hälfte". Ich werde es noch mal versuchen.

Ich möchte nicht die Dateien in einen Ordner bringen, sondern im Featuretree einen Ordner erstellen ( habe ich geschaft mit "swAssembly.FeatureManager.InsertFeatureTreeFolder2") und in diesen Ordner dann die Features (Teile) verschieben.
Ich hoffe, dass es nun etwas klarer ist.

Danke nochmal
Gernot.

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 31. Jul. 2003 13:38    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 Willi71 10 Unities + Antwort hilfreich

Hi nochmal,

Ah... Das ist dann natürlich ein ganz anderes Thema...

Wenn ich mich recht erinnere, reicht es aus, die Features, die in den neuen Feature-Folder verschoben werden sollen, direkt vor Anlegen des Folders per Makro zu selektieren...

Oder musst Du die Features unbedingt hinterher einfügen?

Gruß,
  Danny

------------------
Danny Reinhold
Reinhold Software & Services

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

Willi71
Mitglied
Konstrukteur


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

Beiträge: 34
Registriert: 27.08.2002

SWX2010 Premium SP2,0
Serverlizenz
DELL Precision T3400 Dualcore 3,2GHz; 4GB RAM
Microsoft OpticalWheelMouse USB
nVIDIA FX1700
WinXP Prof. SP3

erstellt am: 31. Jul. 2003 14:09    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,

Die Teile sind über den ganzen Featuretree verstreut und ich muss Teil für Teil durchgehen. Dadurch ist es auch notwendig einen Teil von "unten" in einen Ordner "oben" zu verschieben, da ich nicht einen neuen Ordner erstellen möchte.
Ohne APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) ist es auch mit der LMT und Ziehen möglich, aber bei einer grösseren Baugruppe ist das schon anstrengend und man übersieht gerne ein paar Teile.
Auch beim Aufnehmen mit dem Macrorecorder kann man nichts erkennen, da schreibt er einfach nicht mit.

Grüße
Gernot.

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 31. Jul. 2003 14: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 Willi71 10 Unities + Antwort hilfreich

Diesmal habe ich mich wohl unklar ausgedrückt - sorry...

Ich meinte folgendes Vorgehen per Makro:

- Den Feature-Tree Feature für Feature durchgehen.
  Dabei für jedes Feature:
  - Soll das Feature in den neuen Ordner?
    Ja => Feature.Select2 aufrufen
    Nein => Feature ggf. deselektieren (könnte ja noch
            selektiert sein)
Danach sollten alle Features, die in den neuen Ordner sollen, selektiert sein.

Nun kannst Du FeatureManager.InsertFeatureTreeFolder2 mit dem Typ swFeatureTreeFolder_Containing aufrufen.
Nun entsteht der neue Ordner, der automatisch alle vorher selektierten Features enthält.

Sollte doch das sein, was Du wolltest, oder?

Hmmm... Mist habe Deine letzte Antwort nochmal gelesen. Du willst wohl doch nach dem Erzeugen des Ordners noch verschieben... Irgendwie habe ich heute wohl schon zuviel Kaffee getrunken... ;-))

Da Feature-Folder auch nur Features sind, kann Dir vielleicht die Funktion Feature.MakeSubFeature helfen, der Du ein Feature übergibst.
Benutzt habe ich diese Funktion auch noch nicht. Sag mal bescheid, ob's hilft...
(Allerdings steht in der Dokumentation, dass diese Methode sehr eingeschränkt ist... Einfach mal probieren...)


Gruß,
  Danny


------------------
Danny Reinhold
Reinhold Software & Services

[Diese Nachricht wurde von dr am 31. Juli 2003 editiert.]

[Diese Nachricht wurde von dr am 31. Juli 2003 editiert.]

[Diese Nachricht wurde von dr am 31. Juli 2003 editiert.]

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

Willi71
Mitglied
Konstrukteur


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

Beiträge: 34
Registriert: 27.08.2002

SWX2010 Premium SP2,0
Serverlizenz
DELL Precision T3400 Dualcore 3,2GHz; 4GB RAM
Microsoft OpticalWheelMouse USB
nVIDIA FX1700
WinXP Prof. SP3

erstellt am: 31. Jul. 2003 14: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

Richtig so war es gemeint, aber ich denke ich muss den Ordner so befüllen wie du Eingangs beschrieben hast. Das mit dem SubFeature ist natürlich auch ein möglicher Ansatz, muss ich aber eben erst ausprobieren.

Danke nochmal,
Gernot

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 31. Jul. 2003 17:00    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 Willi71 10 Unities + Antwort hilfreich

Hallo nochmal,

So, den Kaffee habe ich nun gegen grünen Tee und Apfelsaftschorle eingetauscht und die Gehirnzellen fangen langsam wieder an sich zu synchronisieren...

Geholfen hat's aber auch nicht viel... ;-(
MakeSubFeature kann man nicht auf Folder-Features anwenden. Auch sonst habe ich keinen Weg gefunden per APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) nachträglich Features in einen Folder zu verschieben.

Aber für die Interessierten hier einige Beobachtungen:
Ein Folder ist nicht einfach ein Feature, sondern besteht aus zwei Features des Typs FtrFolder.
Das erste Feature ist sichtbar und heisst so wie der Folder (z.B. 'Ordner19').
Das zweite Feature ist nicht sichtbar und heisst ganz ähnlich (z.B. 'Ordner19___EndTag___').
Wenn der Folder umbenannt wird, ändert sich der Name des ersten Features, nicht aber der des zweiten Features.

Dass ein Feature sich in einem Folder befindet, wird leider nicht durch SubFeature-Beziehungen oder sowas vermerkt, sondern einfach durch die Position des Features im FeatureTree. Wenn sich ein Feature zwischen den beiden Features eines Folders befindet, bedeutet dies, dass das Feature sich in dem Folder befindet.
Der Folder beginnt bei einem Feature mit dem Typ FtrFolder und endet beim nächsten Feature dieses Typs. Daher können Ordner auch nicht ineinander verschachtelt werden (habe ich jedenfalls nicht hinbekommen)...

Mit 'das Feature befindet sich zwischen den Ordner Features' meine ich, dass es beim Traversieren des Feature-Baums mittels FirstFeature und NextFeature zwischen den beiden Ordner Features auftaucht.
Leider habe ich keinen Weg gefunden, die Position eines Features in dieser Featureliste per APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) zu setzen...

Schade eigentlich...

Gruß,
  Danny

------------------
Danny Reinhold
Reinhold Software & Services

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 31. Jul. 2003 17:38    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 Willi71 10 Unities + Antwort hilfreich


Macro3.zip

 
Moin nochmal!

Manchmal gibt es ja Probleme, die einem einfach keine Ruhe lassen - und wenn der Kaffe erstmal das Gehirn verlassen hat, findet man manchmal sogar doch noch eine Lösung... ;-))

Ich habe ein Makro angehängt, das die Arbeit mit Foldern grob demonstriert.
Es geht davon aus, dass eine Baugruppe mit den Features Teil1-1 und Teil1-2 geöffnet ist.
Dann legt es einen Folder an und wirft Teil1-1 hinein.

Nun soll Teil1-2 auch in den Folder geworfen werden. Da das nicht direkt geht, verwendet das Makro einen Trick:
Zunächst wird der bereits vorhandene Folder wieder gelöscht. Teil1-1 ist damit wieder 'frei'.
Nun wird einfach ein neuer Folder erzeugt, der von Anfang an Teil1-1 und Teil1-2 enthält.
Dieser könnte nun noch durch Setzen des Name-Propertys umbenannt werden. Und schon wurde das Feature Teil1-2 in den bereits vorhandenen Folder verschoben!

Das ganze kann man unter Berücksichtigung der Beobachtungen aus meinem vorherigen Posting sogar noch erweitern:
Situation:
- Teil1-1 liegt in Folder 'Ordner1'
- Teil1-2 liegt in Folder 'Ordner2'
Nun soll Teil1-2 in den Folder 'Ordner1' verschoben werden.
Durch die allgemeinen Ordner-Beobachtungen aus dem anderen Posting kann man ermitteln, dass Teil1-2 in Ordner2 liegt.
Man kann auch ermitteln, welche Teile da noch drin liegen (z.B. Teil1-3).
Man kann auch ermitteln, welche Teile in Ordner1 liegen.
Nun wird zunächst Ordner1 gelöscht.
Dann wird Ordner2 gelöscht.
Dann wird ein neuer Ordner erzeugt, der alle bisherigen Ordner1-Features und Teil1-2 enthält.
Dieser Ordner wird nun umbenannt nach Ordner1.
Auf dieselbe Art wird nun Ordner2 mit den verbliebenen Features wieder hergestellt.

Ich habe das nicht komplett ausprogrammiert, aber ich sehe da jetzt eigentlich kein echtes Hindernis mehr.

Falls es doch noch ein Problem geben sollte, sag bescheid.

Ansonsten kann ich jetzt wohl wieder ruhiger schlafen... ;-)


Gruß,
  Danny

------------------
Danny Reinhold
Reinhold Software & Services

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

Willi71
Mitglied
Konstrukteur


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

Beiträge: 34
Registriert: 27.08.2002

SWX2010 Premium SP2,0
Serverlizenz
DELL Precision T3400 Dualcore 3,2GHz; 4GB RAM
Microsoft OpticalWheelMouse USB
nVIDIA FX1700
WinXP Prof. SP3

erstellt am: 01. Aug. 2003 08:50    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

Guten Morgen Danny,

Ich hoffe Du hast gut geschlafen und hattest keine Alpträume. Vielen danke für Deine Hilfe.

Ich werde mir Deine Ausführungen erst (wahrscheinlich) nächste Woche genauer ansehen und ausprobieren. Ich komme leider vorher nicht dazu, da Macroprogrammieren leider eine Nebenbeschäftigung (aber große Leidenschaft) neben Zeichnen und Konstruieren ist.


Vielen Dank nochmal und ein schönes Wochenende
Gernot.

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)2020 CAD.de | Impressum | Datenschutz