Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Probleme mit eingefügten Teilen!!

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: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
Autor Thema:  Probleme mit eingefügten Teilen!! (647 mal gelesen)
Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 14. Mrz. 2005 10:03    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 Jungs und Mädels,

ich habe ein Problem, an dem ich schon seit Tagen hänge und keine Lösung finde.
Das Problem sieht wie folgt aus:

1. Ich habe ein geöffnetes PART

2. Ich füge in diesem Part ein zweites Part mit Model.InsertPart ein.

3. Soweit so gut! :-)

4. Ich füge noch ein Part mit Model.InsertPart ein. (und das geht 
  so beliebig weiter)

5. Nun möchte ich die eingefügten Parts auf dem Grundkörper 
  (geöffnetes Part) positionieren, sprich drehen und schieben mit
  Model.FeatureManager.InsertMoveCopyBody2

6. Das Problem ist, dass die eingefügten Parts die selben SOLIDBODY-
  Namen haben, die ich für das Drehen und Schieben selektieren
  muss. Das heißt, ich kann sie NICHT korrekt über 
  Model.Extension.SelectByID ansprechen !!!!

Meine Idee war/ist, die SOLIDBODY-Namen der eingefügten Parts umzubenennen, aber ich habe keinen API-Befehl gefunden, der das leistet. Das einzige was ich umbennen kann, ist der PART-Name der eingefügten Teile (Feature.Name), aber das hilft mir nicht weiter!

Ich bin über jede Idee oder Anregung echt dankbar.

Gruß JENS

PS: Schönes Wochenende an Alle

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 14. Mrz. 2005 12:07    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 Jens S. 10 Unities + Antwort hilfreich

Aheu Jens,

ich würde mal folgendes probieren. Nach jedem einfügen eines Teils den Befehl PartDoc.GetBodies2 ausführen und immer das letzte Element des zurückgegebenen Variant-Arrays in einen neuen Zeiger schreiben. Damit solltest Du am Ende einen Zeiger auf jeden Solidbody in Deinem Teil haben (sofern GetBodies2 die Körper in der Reihenfolge des einfügens holt). Die einzelnen Körper kannst Du dann mit

retval = Body2.Select ( Append, Mark )

auswählen.

Dabei auf keinen Fall Mark vergessen auf 1 zu setzen, da InsertMoveCopyBody sonst nicht funktioniert (siehe API-Hilfe).
Ich hoffe, dass es klappt, ansonsten nochmal melden, vielleicht fällt mir ja nochwas ein, denn

Es gibt immer mehr Lösungen als Probleme.

Bis dann,
Kalle

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

cad manu
Mitglied
Technische Zeichnerin / Konstrukteurin


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

Beiträge: 799
Registriert: 01.09.2004

IntelCore i9-14900K
3,2 GHz-64 GB RAM
NVIDIA RTX A5000
SolidWorks 2022 Pro x64 SP5.0
Windows 11 Pro 23H2
DraftSight 2022 x64
VariCAD Viewer 202*

erstellt am: 14. Mrz. 2005 12:48    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 Jens S. 10 Unities + Antwort hilfreich

Moin Jens,
mag jetzt plump wirken,
aber wie wäre es,
wenn Du dazu die Baugruppe (*.sldasm) benutzt,
statt das Part (*.sldprt) ?
Gruß cad manu

------------------
"Das Glück besteht nicht darin, dass du tun kannst, was du willst, sondern darin,
dass du auch immer willst, was du tust."
(Leo Tolstoi)

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 14. Mrz. 2005 13:32    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 CAD MANU,

die Frage ist nicht plump sondern sehr berechtigt!
Da habe ich auch schon drüber nachgedacht. Habe mich aber dann, am Anfang meiner Programmierung, für das Einfügen eines Parts in Part entschieden.
Der Grund dafür ist eine anschliessende CAM - Kopplung und das Generieren eines CNC-Codes, von EINEM Bauteil.

Ob das der richtige Ansatz war/ist, kann ich aufgrund mangelnder Programmier-Erfahrung nicht beurteilen :-)

Aber irgendeinen Weg muss man ja nunmal gehen :-)

Gruß JENS

PS: Fakt iss aber, dass ich ohne dieses Forum mit Sicherheit nicht da wäre, wo ich jetzt bin - DANKE NOCHMAL AN ALLE!!!

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 14. Mrz. 2005 13:33    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

Accccchhhhhhhh Kalle, :-)

das scheint eine Lösung zu sein. Ich werde es ausprobieren und mich dann melden, ob es geklappt hat.

DANKE!!

LG JENS

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 14. Mrz. 2005 13: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 Nur für Jens S. 10 Unities + Antwort hilfreich

Aheu Jens,

wenn's um NC-Bearbeitung geht und die generierung des Codes aus einem Teil, dann würde ich trotzdem den Weg über die Baugruppe gehen und diese dann am Ende als Einzelteil abspeichern. Ist vermutlich wesentlich einfacher. Aber versuch's trotzdem mal im Teil, da mich interessiert ob meine Idee funktioniert 

Bis dann,
Kalle

------------------
-----------------------------------------
Es gibt immer mehr Lösungen als Probleme.

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 14. Mrz. 2005 15:44    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

Hoi Kalle,

also die Selektion über Body2.Select funktioniert (praktisch) :-)

Koerper = Swpart.GetBodies2(swSolidBody, False)
Set swbody1 = Koerper(1)
retval = swbody1.Select(True, 1)

Part.FeatureManager.InsertMoveCopyBody2 0.04, 0, 0, 0, 0, 0, 0, 0, 0, 0, False, 1

Mein Weg war folgender:
1. Ich füge ein Part ein und positioniere es
2. und füge anschliesend das zweite ein und positioniere das ebenfalls

Es hatte den Anschein, dass jedes neu eingefügte Part den VARIANT-"Wert" Köerper(1) hat. Das scheint aber nicht "immer" so zu sein. Da oft wieder die falschen eingefügten Parts verschoben wurden.
Bei einer Kontrolle viel auf, dass das vorher ERSTE Element "plötztlich" einen ganz anderen Zeiger-"Wert" hat/ bekommen hat.

Hmmm .. grübel ... LG JENS

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 14. Mrz. 2005 15:46    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

Nachtrag ...

Wenn man doch bloss den Namen der Bodies ändern könnte ...

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 14. Mrz. 2005 16:24    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 Jens S. 10 Unities + Antwort hilfreich

Aheu Jens,

jetzt wird's umständlich. Versuche folgendes:

InsertPart gibt Dir einen Zeiger auf das eingefügte Teil (allerdings auf das Feature und nicht auf den Body). Mit

FeatureFlaechen = Feature.GetFaces

holst Du Dir alle Flächen des eingefügten Teils (Features). Dann setzt Du einen Zeiger auf z.B. die erste der Flächen

Set Flaeche = FeatureFlaechen(1)

Dann holst Du Dir von der Fläche den zughörigen Body mittels

Set Koerper = Flaeche.GetBody

Wie immer hab ich's nicht ausprobiert und vielleicht ist hier und da die Syntax falsch, aber diese Vorgehensweise müsste ziemlich sicher funktionieren.

Bis dann,
Kalle

------------------
-----------------------------------------
Es gibt immer mehr Lösungen als Probleme.

[Diese Nachricht wurde von Kalle am 14. Mrz. 2005 editiert.]

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 15. Mrz. 2005 10:06    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 Kalle,

danke für den Tipp! Es scheint so, als würde es 100% funktionieren!
Deswegen hier die umgesetzte Syntax für ALLE:

Info: Das Program fügt das Part XXX in das aktive Part-Dokument ein und verschiebt es um 20mm in positive x-Richtung.


Dim swApp As Object
Dim Part As Object
Dim bool As Boolean
Dim Objekt As Object
Dim Koerper As Object
Dim faces As Variant
Dim face2 As Object

Sub main()

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

Set Objekt = Part.InsertPart("C:\xxx.SLDPRT", False, False, False)
faces = Objekt.GetFaces
Set face2 = faces(1)
Set Koerper = face2.GetBody()
bool = Koerper.Select(True, 1)
Part.FeatureManager.InsertMoveCopyBody2 0.02, 0, 0, 0, 0, 0, 0, 0, 0, 0, False, 1

End Sub


LG JENS

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 15. Mrz. 2005 11:02    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 Jens S. 10 Unities + Antwort hilfreich

Aheu Jens

Na also. Freut mich dass ich helfen konnte und es jetzt klappt.

Bis dann,
Kalle

------------------
-----------------------------------------
Es gibt immer mehr Lösungen als Probleme.

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



Anzeige:Infos zum Werbeplatz >>

speedyPDM CAD APP für Andere, Datenaustausch, Allgemeine Werkzeuge

speedyPDM ist das führende technische Dokumenten- und Produktdatenmanagementsystem für Solidworks, Solid Edge, Inventor, AutoCAD, ZWCAD, BricsCAD, Office und Email inklusive Revisionsmanagement.

cad manu
Mitglied
Technische Zeichnerin / Konstrukteurin


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

Beiträge: 799
Registriert: 01.09.2004

IntelCore i9-14900K
3,2 GHz-64 GB RAM
NVIDIA RTX A5000
SolidWorks 2022 Pro x64 SP5.0
Windows 11 Pro 23H2
DraftSight 2022 x64
VariCAD Viewer 202*

erstellt am: 15. Mrz. 2005 12:55    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 Jens S. 10 Unities + Antwort hilfreich

Moin Jungs,
vorallem Jens und Kalle.
Da ich euch leider nicht mehr folgen kann,
steige ich hier aus und grüße euch mit diesem hier

Hätt ja sonst gern noch mein Senf dazugegeben ...
cad manu

------------------
"Das Glück besteht nicht darin, dass du tun kannst, was du willst, sondern darin,
dass du auch immer willst, was du tust."
(Leo Tolstoi)

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