Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VBA Bauteil zum Ursprung vermessen

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
  
SolidCAM im Einsatz bei der August Weckermann KG
Autor Thema:  VBA Bauteil zum Ursprung vermessen (567 / mal gelesen)
Christoph Weise
Mitglied
Technischer Produktdesigner / Konstruktion / CAD-Admin


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

Beiträge: 204
Registriert: 22.03.2015

Dell 3650
Intel I7 11700k
32 GB RAM
Nvidia RTX A4000 16GB
Win 10 22H2 64-bit
SolidWorks 2022SP5
QuickPress 6.3.3
PortaX 2.27
SAP ERP 6.0

erstellt am: 25. Mrz. 2021 15:19    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´ler,

In einer Baugruppe sollen alle Federn gesucht werden, und die Koordinaten relativ zum Ursprung ausgegeben werden.

Schwierigkeit dabei:
- ca. 1000 einzelne Komponenten
- verschachtelt in bis zu 150 Baugruppen (Nullpunkte der Baugruppen sind nicht immer die gleichen wie in der Überbaugruppe
- Maximaltiefe der Baugruppenstruktur 7 Ebenen
- Doppelt verwendete Federn mit gleicher und unterschiedlicher Konfigurartion

Über die Routine aus dem Makro "Assambly-print-Drawings"  werden alle Baugruppen durchwühlt und abgefragt.
Dadurch habe ich schon alle benötigte Bauteile inklusive Konfiguration ausgelesen.

Einzig das Auslesen der Koordinaten macht mir Probleme. Wobei "einzig" hier doch etwas komplizierter ist.

Koorigiert mich bitte falls meine Gedankengänge irr laufen

Mein erster Gedankengang war, dass ich während ich die anderen Werte auslese den Ursprung des Bauteils nehme und mit dem Ursprung der Obersten Baugruppe vermesse.
Anschließen das Ergebnis in die Variable eintrage.
Dazu hätte ich die Funktion "ClosestDistance Method (IModelDoc2)" verwendet. Diese Funktion benötigt aber den Ursprung der Feder als Selektiertes Objekt
Dies ist über die Funktion SelectByID2 möglich.  Nur ist dieser Name etwas verzwickt, denn er besteht aus dem ganzen Oberbaugruppen und der internen Kennung (Mehrfach verbaute Baugruppen)

Bsp.

Code:
SelectByID2("Point1@Ursprung@BG1@BG0/BG2-1@BG1/BG3-1@BG2/BG4-1@BG3/Feder-1@BG4", "EXTSKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)

Leider konnte ich nichts finden wie ich die Interne Kennung oder den "ganzen Namen" der Teile / Baugruppen in der Baugruppe auslesen kann.

Gibt es einen einfacheren Weg die Nullpunkte der Bauteile auszulesen bzw. funktioniert mein Weg überhaupt?

Gruß Christoph

------------------
Wer einen Fehler findet darf ihn behalten,
wer zwei findet kann beide behalten,
ab fünf Fehler gibs Rabatt :-)

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

RBE
Mitglied
TechSupport; Bechtle PLM Deutschland GmbH


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

Beiträge: 291
Registriert: 11.02.2002

HP ZBook 17 G5
Core i9 2.9GHz
32GB RAM
Quadro P4200
Win11
SolidWorks2024 SP1

erstellt am: 26. Mrz. 2021 08:41    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 Christoph Weise 10 Unities + Antwort hilfreich

Hi,

hab grad wenig Zeit, daher erstmal ein paar Stichworte:

Component2::GetSelectByIDString
Component2::Transform2

Selektieren musst Du aber eigentlich nichts. Hol Dir einfach alle Komponenten und dann ermittle Dir von den gewünschten die Koordinaten.

------------------
Grüße, RBE
----------

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

Christoph Weise
Mitglied
Technischer Produktdesigner / Konstruktion / CAD-Admin


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

Beiträge: 204
Registriert: 22.03.2015

Dell 3650
Intel I7 11700k
32 GB RAM
Nvidia RTX A4000 16GB
Win 10 22H2 64-bit
SolidWorks 2022SP5
QuickPress 6.3.3
PortaX 2.27
SAP ERP 6.0

erstellt am: 27. Mrz. 2021 22:58    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 RBE,

Vielen Dank für die Stichpunkte  Component2::Transform2 kannte ich noch nicht. Sieht aber bei den ersten Tests ganz gut aus. Ich werde es am Montag mal in den Programcode einbauen. 

Gruß Christoph

------------------
Wer einen Fehler findet darf ihn behalten,
wer zwei findet kann beide behalten,
ab fünf Fehler gibs Rabatt :-)

[Diese Nachricht wurde von Christoph Weise am 02. Apr. 2021 editiert.]

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