Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Modelleigenschaften auslesen mit VBA

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 auf der GROB Hausmesse 2024
Autor Thema:  Modelleigenschaften auslesen mit VBA (4732 mal gelesen)
Nobody1976
Mitglied



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

Beiträge: 46
Registriert: 20.05.2014

SWX 2022 SP5.0

erstellt am: 20. Mai. 2014 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

Hallo Forum,

Ich bräuchte da mal Hilfe!
Ich habe ein Makro welches ich aus einer Zeichnung heraus starte. Dieses Makro erstellt ein PDF in einem
bestimmten Ordner und versendet dann die PDF als E-Mail.
Das funktioniert auch wunderbar.
Aber jetzt muss ich an die PDF Datei noch eine Eigenschaft aus dem Modell hinzufügen.
Auf der Zeichnung ist die Eigenschaft in einem Schriftfeld mit Link $PRPSHEET:{Rohteilnummer} verlinkt.
Kann ich auf diese Eigenschaft auch mit VBA zugreifen?
Wenn ja wie und wenn nicht hat da jemand eine Lösung wie ich es anstellen könnte?

Danke für eure Bemühungen.

LG Udo

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 20. Mai. 2014 14:04    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 Nobody1976 10 Unities + Antwort hilfreich

Hallo Udo,

und herzlich willkommen im SolidWorks Brett auf CAD.de 

Zitat:
Original erstellt von Nobody1976:
Auf der Zeichnung ist die Eigenschaft in einem Schriftfeld mit Link $PRPSHEET:{Rohteilnummer} verlinkt.
Kann ich auf diese Eigenschaft auch mit VBA zugreifen?

Ja, das geht, ist per API aber nicht ganz so trivial, wie beim interaktiven Einfügen auf der Zeichnung.

1. Du musst von deiner Zeichnung das aktive Blatt ermitteln.
2. Das Sheet hat eine Eigenschaft, von welcher Zeichenansicht die Eigenschaften geholt werden (  Sheet::CustomPropertyView )
3. Du holst dir das Objekt dieser Zeichenansicht
4. Du öffnest das Modell, das in dieser Zeichenansicht dargestellt wird
5. Von diesem Modell holst du dir den Wert der benutzerdefinierte Dateieigenschaft "Rohteilnummer"

Eh voila.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 20. Mai. 2014 15:05    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 Nobody1976 10 Unities + Antwort hilfreich

Hallo Udo

Ich hab schnell ein Makro gebastelt...

Code:
Option Explicit
Dim swApp              As SldWorks.SldWorks
Dim swModel            As SldWorks.ModelDoc2
Dim swDraw              As SldWorks.DrawingDoc

Dim swModelDocExt      As SldWorks.ModelDocExtension
Dim swSheet            As SldWorks.Sheet
Dim swView              As SldWorks.View
Dim swModelRef          As SldWorks.ModelDoc2
Dim swCustProp          As CustomPropertyManager

Dim val                As String
Dim valout              As String
Dim bool                As Boolean

Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
'Ist ein Dokument offen?
If swModel Is Nothing Then
    MsgBox "Kein Dokument offen", vbCritical
    End
End If
'Ist Dokument eine Zeichnung?
If swModel.GetType <> swDocDRAWING Then
    MsgBox "Nur für Zeichnungen sinnvoll.", vbCritical
    End
End If

Set swDraw = swModel

'Aktuelles Blatt holen
Set swSheet = swDraw.GetCurrentSheet
Set swView = swDraw.GetFirstView
'Ansicht mit Eigenschaften holen
If swSheet.CustomPropertyView = "Standard" Then 'Muss der eingestellten Sprache angepasst werden
    Set swView = swView.GetNextView
Else
    Do While Not swView.Name = swSheet.CustomPropertyView
        Set swView = swView.GetNextView
    Loop
End If

'Referenziertes Model holen
Set swModelRef = swView.ReferencedDocument
Set swModelDocExt = swModelRef.Extension
'Eigenschaft auslesen
Set swCustProp = swModelDocExt.CustomPropertyManager("")
bool = swCustProp.Get4("Rohteilnummer", False, val, valout)
'Eigenschaft ausgeben
Debug.Print "Wert:                    " & val
Debug.Print "Evaluierter Wert:        " & valout
Debug.Print "Ist Wert Aktuell:        " & bool

End Sub


Zitat:
Original erstellt von Nobody1976:
Aber jetzt muss ich an die PDF Datei noch eine Eigenschaft aus dem Modell hinzufügen.

Falls du die Eigenschaft in die Eigenschaften des PDFs schreiben willst, gibt hier einen Thread dazu.
http://ww3.cad.de/foren/ubb/Forum2/HTML/023258.shtml

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

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

Nobody1976
Mitglied



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

Beiträge: 46
Registriert: 20.05.2014

SWX 2022 SP5.0

erstellt am: 20. Mai. 2014 15:25    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 HenryV

Danke für die schnelle Antwort.
Ich habe mal deinen Code versucht aber bin schon gleich am Anfang gescheitert.
VBA meldet gleich bei Dim swApp As SldWorks.SldWorks Benutzerdefinierter Typ nicht definiert
Kann natürlich auch sein das ich von den Grundeinstellungen was falsch habe.

Gruss Udo

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 20. Mai. 2014 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 Nur für Nobody1976 10 Unities + Antwort hilfreich

Hallo Udo

Da fehlen bei dir wohl ein paar Verweise.

Im Menü Tools->References...

Haken bei
- SolidWorks 2013 Type Library
- SolidWorks 2013 Constant Type Library
- SolidWorks 2013 Commands Type Library
reinmachen und dann sollte es gehen. (Jahreszahl deiner SWX-Version anpassen)

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

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

Nobody1976
Mitglied



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

Beiträge: 46
Registriert: 20.05.2014

SWX 2022 SP5.0

erstellt am: 20. Mai. 2014 15: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

Hallo HenryV

ich steh grad auf dem Schlauch. Wo sind die Einstellungen zu finden?

Danke für die Info

Gruss Udo

[Diese Nachricht wurde von Nobody1976 am 20. Mai. 2014 editiert.]

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

Nobody1976
Mitglied



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

Beiträge: 46
Registriert: 20.05.2014

SWX 2022 SP5.0

erstellt am: 20. Mai. 2014 16: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

Hallo HenryV,

habe es gefunden. Denke du benutzt eine Englische Version. Bei mir steht es unter Verweise.
Funzt auch super.
Aber jetzt habe ich noch ein weiteres Problem was ich am Anfang vergessen habe.
Wie muss ich es anfangen wenn ich auf konfigurationsspezifische Werte zugreifen will.
Es kann bei uns auch sein das die Datei mehrere Konfigurationen hat und dann sind mehrere Seiten
die alle eine eigene Rohteilnummer haben.

Gruss Udo

[Diese Nachricht wurde von Nobody1976 am 20. Mai. 2014 editiert.]

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 20. Mai. 2014 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 Nobody1976 10 Unities + Antwort hilfreich

Hallo Udo

Für den Wert aus der aktuellen Konfig kannst du das Makro so abändern

Code:
...
''Referenziertes Model holen
Set swModelRef = swView.ReferencedDocument
swModelRef.ShowConfiguration2 (swView.ReferencedConfiguration)

'Set swModelDocExt = swModelRef.Extension
''Eigenschaft auslesen
'Set swCustProp = swModelDocExt.CustomPropertyManager("")

Set swConfigMgr = swModelRef.ConfigurationManager
Set swConfig = swConfigMgr.ActiveConfiguration

Debug.Print "Name of this configuration: " & swConfig.Name
Set swCustProp = swConfig.CustomPropertyManager

bool = swCustProp.Get4("Rohteilnummer", False, val, valout)
'Eigenschaft ausgeben
....


Gruss Andreas

------------------
21 ist nur die halbe Antwort.

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

Nobody1976
Mitglied



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

Beiträge: 46
Registriert: 20.05.2014

SWX 2022 SP5.0

erstellt am: 27. Mai. 2014 07: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

Hallo

vielen Dank an alle die mir so schnell weitergeholfen haben.
Alles funzt wie gewünscht.
Nochmals vielen Dank.

LG
Udo 

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