Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Dateieigenschaften mit Makro für Teil in der BG ausfüllen

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
  
InnovateNext 26. in Dortmund, eine Veranstaltung am 28.10.2025
Autor Thema:  Dateieigenschaften mit Makro für Teil in der BG ausfüllen (2297 mal gelesen)
Joshua63
Mitglied
Maschinenbautechniker


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

Beiträge: 371
Registriert: 08.11.2006

W10 SP1
Intel i7 8700K
Quatro P4000
32GB RAM
SW 2021 SP4.1
SWX PDM Professional 2021

erstellt am: 25. Feb. 2011 15: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

Hallo zusammen,

ist es möglich die Dateieigenschaften eines markierten Teils / Baugruppe in einer Baugruppe mit einem Makro auszufüllen ?

Mit der Registrierkarte von SWXSolidWorks kalppt das ja, die hat aber nicht die Funktionen meines Makros.

ciao

Martin

------------------
Viele Wege führen zum Ziel .......... und ich will alle wissen !

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 26. Feb. 2011 10: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 Joshua63 10 Unities + Antwort hilfreich

Guten Morgen Martin,

auf die Schnelle fällt mir folgendes ein: Baugruppe traversieren und selektiertes Bauteil herausfinden. (Selektiertes Bauteil öffnen) Und dadurch Zugriff über den PropertyManager auf die Dateieigenschaften vom Bauteil erhalten und deine gewünschten Werte eintragen.
Wie geschrieben: nur auf die Schnelle.
Vielleicht gibt es eine elegantere Lösung, direkt von der Baugruppe aus auf die Dateieigenschaften vom Teil zuzugreifen.
Makros zum Baugruppe traversieren findest du in der MacroMania Tauschbörse, wie auch für das Eintragen der Eigenschaften. Wir haben das Thema auch vor kurzem in folgendem Thread erörtert: http://ww3.cad.de/foren/ubb/Forum2/HTML/021862.shtml#000012
Viele Grüße und HTH

Tobias

------------------
Besucht mich doch mal in meiner Tischlerei

"...Kommunikation ist nur so gut wie ihr Ergebnis..." - frei nach Richard Bandler / John Grinder

"...Wenn du das tust, was du schon immer tust, wirst du auch nur das erhalten, was du schon immer erhalten hast..."

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: 28. Feb. 2011 08: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 Nur für Joshua63 10 Unities + Antwort hilfreich

Hallo Martin,

ja, das geht. Mit SelectionMgr::GetSelectedObject6 holst du dir Über deine Selektion die Komponente und mit Component2::GetModelDoc dann das passende Modellobject. Da kannst du dann mit den Funktionen deines Makros auch die Dateieigenschaften lesen und schreiben.

Ciao,
Stefan

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

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.

Joshua63
Mitglied
Maschinenbautechniker


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

Beiträge: 371
Registriert: 08.11.2006

W10 SP1
Intel i7 8700K
Quatro P4000
32GB RAM
SW 2021 SP4.1
SWX PDM Professional 2021

erstellt am: 28. Feb. 2011 09:29    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 Stefan,

danke für die schnelle Antwort.

Wo im Makro muss ich ansetzen ?

Ich rufe in meinem Makro verschiedene Formulare auf.
Die Zuordnung basiert auf dem Format des Dateinamens (Kundenspezifisch).

Ist das Identifizieren anhand des Dateinamens in der BG auch möglich ?


Hier ist mal das Modul:

Option Explicit
Const swDocPART = 1
Const swDocASSEMBLY = 2
Const swDocDRAWING = 3

' Hier werden die Dateinamen anhand ihres Formats dem Kunden zugeordnet.
' Trifft kein Kriteriun zu, wird das Auswahlmenü "Kundenauswahl" aufgerufen.
' Dort kann dann entschieden werden, ob man das Makro beenden will oder einen Kunden manuell auswählen möchte.

Sub main()
   
    Dim swApp As Object
    Dim Model As Object
    Dim iPos As Integer                    ' Variable für 1. Punkt
    Dim vPos As Integer                    ' Variable für 2. Punkt
    Dim uPos1 As Integer                  ' Variable für 1. Unterstrich
    Dim uPos2 As Integer                  ' Variable für 2. Unterstrich
    Dim uPos3 As Integer                  ' Variable für 3. Unterstrich
    Dim uPos4 As Integer                  ' Variable für 4. Unterstrich
    Dim wPos1 As Integer                  ' Variable für 1. Bindestrich
    Dim wPos2 As Integer                  ' Variable für 2. Bindestrich
    Dim kPos As Integer                  ' Variable für Kaufteile
    Dim instr As Integer
    Dim fso As New FileSystemObject  ' Variablen Kaufteilerfassung
    Dim oFolder As Folder                '   
   
' am Anfang Werte auf "0" setzen
    iPos = 0
    vPos = 0
    uPos1 = 0
    uPos2 = 0
    uPos3 = 0
    uPos4 = 0
    wPos1 = 0
    wPos2 = 0
    kPos = 0
    Set swApp = CreateObject("SldWorks.Application")
    swApp.Visible = True
    Set Model = swApp.ActiveDoc
 
' wenn nix geladen direkt wieder raus
    If Model Is Nothing Then
        Call MsgBox("Keine Datei" & vbNewLine & "  geöffnet", vbOKOnly + vbInformation + vbApplicationModal, "          INFORMATION")
        End
    End If
   
' Abfragen der einzelnen kundenspezivischen Dateivarianten
' sucht den Punkt ab dem 1. Zeichen
' iPos = 5 (Vill)
    iPos = InStr(1, Model.GetTitle, ".", vbTextCompare)
    If iPos = 0 Then iPos = Len(Model.GetTitle) + 1
 
' sucht den Punkt ab dem 7. Zeichen
' vPos = 10 (Vill)
    vPos = InStr(7, Model.GetTitle, ".", vbTextCompare)
 
' Suche der Unterstriche                                                      Sollwert
    uPos1 = InStr(1, Model.GetTitle, "_", vbTextCompare)      '  2
    uPos2 = InStr(4, Model.GetTitle, "_", vbTextCompare)      '  6
    uPos3 = InStr(8, Model.GetTitle, "_", vbTextCompare)      ' 10
    uPos4 = InStr(12, Model.GetTitle, "_", vbTextCompare)    ' 14
   
' Suche der Bindestriche                                                      Sollwert
    wPos1 = InStr(1, Model.GetTitle, "-", vbTextCompare)      '  7
    wPos2 = InStr(9, Model.GetTitle, "-", vbTextCompare)      '  11 (10 bei 2stelliger Baugruppennummer)
   
' Abfrage Kaufteile nach Firmenname im Kaufteilordner.
' Der Firmennamen muss an der 1. oder 2. Stelle des Dateinamens anfangen.
' Bei Standardkaufteilen ist ein Unterstrich ("_") am Anfang, deshalb auch noch an 2. Stelle
   
' Auswahl des entsprechenden Formulars bezogen auf den Dateinamen, dann mit ".show" auf den Bildschirm bringen
    If iPos = 5 And vPos = 10 Then
        Kunde1.Show
    ElseIf (uPos1 = 2) And (uPos2 = 6) And (uPos3 = 10) And (uPos4 = 14) And iPos > 18 Then
        Kunde2.Show
    ElseIf ((wPos1 = 7) And (wPos2 = 10 Or wPos2 = 11)) Or (kPos = 1 Or kPos = 2) Then
            ' Zeichnungsnummer                              Firmenname Kaufteil
        Weber.Show
    ElseIf iPos > 15 Then
        ' Vergleich Firmenname mit Ordnername im Kaufteilordner
        For Each oFolder In fso.GetFolder("H:\_Kaufteile_Weber").SubFolders    ' Kaufteilordner
        kPos = InStr(1, Model.GetTitle, oFolder.Name, vbTextCompare)
            If (kPos = 1) Or (kPos = 2) Then
                Exit For
            End If
        Next
        If (kPos = 1 Or kPos = 2) Then
            Weber.Show
        Else
            Kundenauswahl.Show
        End If
    Else
        Kundenauswahl.Show
    End If
   
End Sub


Das ganze mag nicht ganz professionell aussehen (bin absoluter Laie), aber es funz.
Is ja alles nur geklaut 


Die ein oder andere Codezeile würde es mir leichter machen.

Danke

ciao

------------------
Viele Wege führen zum Ziel .......... und ich will alle wissen !

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