Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Solidworks 2010 vba - Selektieren eines Parts

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
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Solidworks 2010 vba - Selektieren eines Parts (1768 mal gelesen)
Steffen Materna
Mitglied


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

Beiträge: 4
Registriert: 12.02.2013

erstellt am: 12. Feb. 2013 10:59    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,

ich arbeite gerade an einer Studienarbeit. Dabei muss ich ein Makro programmieren, das es ermöglicht, Teile aus einer Baugruppe gezielt zu ersetzen. Das möchte ich gerne über die Funktion replace.components machen, allerdings habe ich dabei das Problem, dass ich es nicht hinbekomme, das entsprechende Teil der Baugruppe zu selektieren.

Die API gibt nur ein Beispielmakro an, bei dem bereits durch den Nutzer das entsprechende Teile markiert ist. Ich möchte es allerdings über das Makro ansteuern.


Für Hilfe bin ich sehr dankbar.


Gruß
Steffen

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

Jörg_B
Mitglied
Staatlich geprüfter Techniker Maschinenbau


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

Beiträge: 96
Registriert: 24.03.2003

Beruf<P>Solid Works 2011 SP 5<P>Windows 7
Intel Q6600, 3GB Ram
FX 1500 / 6.14.10.9163<P>Privat
Alibre 11 Standard
HP dv 9700
AMD Turion 64 X2, 2GB Ram
NVIDIA GForce 8400M GS

erstellt am: 12. Feb. 2013 11: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 Nur für Steffen Materna 10 Unities + Antwort hilfreich

Hallo Steffen,

ich kenne mich mit der API nicht wirklich aus, aber ich denke
das was Du suchst geht in Richtung SelectedByID2.

Solche Solidworks-API speziellen Fragen stellt man am besten direkt
im Solidworksbrett.

------------------
Gruß vom Oberrhein

Jörg

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

Steffen Materna
Mitglied


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

Beiträge: 4
Registriert: 12.02.2013

erstellt am: 12. Feb. 2013 11:34    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

Vielen Dank für diese schnelle Antwort.

Auf diesen Befehl bin ich auch schon gestoßen, leider habe ich ihn nicht richtig verstanden.

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

Jörg_B
Mitglied
Staatlich geprüfter Techniker Maschinenbau


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

Beiträge: 96
Registriert: 24.03.2003

Beruf<P>Solid Works 2011 SP 5<P>Windows 7
Intel Q6600, 3GB Ram
FX 1500 / 6.14.10.9163<P>Privat
Alibre 11 Standard
HP dv 9700
AMD Turion 64 X2, 2GB Ram
NVIDIA GForce 8400M GS

erstellt am: 12. Feb. 2013 13:28    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 Steffen Materna 10 Unities + Antwort hilfreich

Hallo,

hier ein Schnelltest aus dem Makrorekorder.
Baugruppe mit Namen Test; Teil-1 und Teil-2
Im Verzeichniss C:\temp.

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

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

boolstatus = Part.Extension.SelectByID2("Teil1-1@Test", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ReplaceComponents("C:\temp\Teil2.SLDPRT", "Standard", True, True)

End Sub

Edit: Die -1 ist die Instanz des Teiles (Im Featurebaum in <>

------------------
Gruß vom Oberrhein

Jörg

[Diese Nachricht wurde von Jörg_B am 12. Feb. 2013 editiert.]

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

Steffen Materna
Mitglied


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

Beiträge: 4
Registriert: 12.02.2013

erstellt am: 12. Feb. 2013 13: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

Vielen Dank. Jetzt funktioniert es und ich habe den Code auch verstanden.

Gruß
Steffen

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

Steffen Materna
Mitglied


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

Beiträge: 4
Registriert: 12.02.2013

erstellt am: 14. Feb. 2013 15:16    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

Derweil bin ich gut vorangekommen. Leider habe ich nun das nächste Problem.

Wir arbeiten in der Firma selbstverständlich mit dem PDM-System. Wenn ich nun eine Komponente via vba ersetzen möchte, geht das nur, wenn ich das Teil zuvor im PDM mal angeklickt habe. Ich denke es wird dann in den Speicher geschrieben bzw. lokal hinterlegt.

Nun ist es extrem Benutzerunfreundlich, wenn er jedesmal, bevor der Automatismus greifen soll, alle erforderlichen Teile einmal anklicken muss.

Gibt es eine Möglichkeit, Teile mit einem Befehl "vorzuladen"?

Viele Grüße
Steffen Materna

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
privat:
ab 2024 Onshape
seit 2025 SolidWorks for Makers

erstellt am: 04. Mrz. 2013 16:45    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 Steffen Materna 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Steffen Materna:
...Wir arbeiten in der Firma selbstverständlich mit dem PDM-System. Wenn ich nun eine Komponente via vba ersetzen möchte, geht das nur, wenn ich das Teil zuvor im PDM mal angeklickt habe. ...

Hallo Steffen,
ich kann dir wahrscheinlich leider eh nicht helfen, aber:
Es gibt nicht DAS PDM-System, sondern viele. Jedes ist anders zu bedienen, jedes reagiert anders... du solltest also schon dazu schreiben, um welches es sich handelt.
Bei der Gelegenheit könntest du auch deine Sysinfo ausfüllen, damit wäre den potenziellen Helfern oft schon geholfen.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... |

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