Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VBA Benutzerdefinierte Eigenschaften ändern bei geschlossener Datei

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
  
PLM TechnologieForum Essen
Autor Thema:  VBA Benutzerdefinierte Eigenschaften ändern bei geschlossener Datei (1357 / mal gelesen)
fabian1243
Mitglied
Maschinen-Konstrukteur


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

Beiträge: 44
Registriert: 28.06.2018

SW 2021
Win 10 Pro v1909

erstellt am: 06. Jul. 2018 11: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


MehrereDateien.png

 
Hallo,

Ich hab mein VBA fast so wie ich es will.
Das Ändern der aktiven Solidworks Datei geht jetzt (Teil und Baugruppe).
Der Browser zum hinzufügen und bereitstellen der Pfade geht auch.
Speichern von Benutzereinstellungen in der Registry läuft auch.

Was fehlt: Von jeder Datei von der der Pfad in der Liste steht, sollen nun die Benutzerdefinierten Eigenschaften ausgelesen und gespeichert werden.
           (Zurzeit ist das nur von der aktiven Dateie möglich)
Hat jemand die passende Befehle gesehen oder weis wie das geht (Bei geschlossenen Dateien! Ansonsten dauert mir das öffnen/schreiben/schießen bei 100en Dateien zu lang!)

[Diese Nachricht wurde von fabian1243 am 06. Jul. 2018 editiert.]

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 06. Jul. 2018 11:56    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 fabian1243 10 Unities + Antwort hilfreich

Hallo Fabian,

wie Andreas hier http://ww3.cad.de/foren/ubb/Forum2/HTML/031484.shtml#000002
schon geschrieben hat, wird Dir da wohl nur die "Document Manager API"
weiterhelfen.
Such einfach mal in der Online Hilfe nach "Document Manager API"

------------------
Grüße
Heinz

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: 06. Jul. 2018 11: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 Nur für fabian1243 10 Unities + Antwort hilfreich

Hallo

Du kannst deine Dokumente unsichtbar laden, indem du DocumentVisible auf False setzt.

Code:
If FType = "*.sldprt" Then
    swApp.DocumentVisible False, swDocPart
    Set swPart = swApp.OpenDoc(sPath & sFileSW, swDocPart)
    swApp.DocumentVisible True, swDocPart
ElseIf FType = "*.sldasm" Then
    swApp.DocumentVisible False, swDocAssembly
    Set swPart = swApp.OpenDoc(sPath & sFileSW, swDocAssembly)
    swApp.DocumentVisible True, swDocAssembly
End If

Gruss Andreas

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

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

fabian1243
Mitglied
Maschinen-Konstrukteur


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

Beiträge: 44
Registriert: 28.06.2018

SW 2021
Win 10 Pro v1909

erstellt am: 06. Jul. 2018 12: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

Zitat:
Original erstellt von nahe:
Hallo Fabian,

wie Andreas hier http://ww3.cad.de/foren/ubb/Forum2/HTML/031484.shtml#000002
schon geschrieben hat, wird Dir da wohl nur die "Document Manager API"
weiterhelfen.
Such einfach mal in der Online Hilfe nach "Document Manager API"


Ja nur da stand irrgendetwas mit nem Schlüssel den man braucht hab das nicht ganz verstanden 

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 06. Jul. 2018 12:39    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 fabian1243 10 Unities + Antwort hilfreich

Hallo Fabian,

genau diesen Schlüssel kannst du z.B. über deinen Reseller anfordern. Ohne den "Document Manager" geht das nur wie oben schon beschrieben mit unsichtbarem Laden, was aber auch sehr viel schneller geht wie das normale Laden.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

fabian1243
Mitglied
Maschinen-Konstrukteur


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

Beiträge: 44
Registriert: 28.06.2018

SW 2021
Win 10 Pro v1909

erstellt am: 06. Jul. 2018 14:52    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

Zitat:
Original erstellt von HenryV:
Hallo

Du kannst deine Dokumente unsichtbar laden, indem du DocumentVisible auf False setzt.

Code:
If FType = "*.sldprt" Then
    swApp.DocumentVisible False, swDocPart
    Set swPart = swApp.OpenDoc(sPath & sFileSW, swDocPart)
    swApp.DocumentVisible True, swDocPart
ElseIf FType = "*.sldasm" Then
    swApp.DocumentVisible False, swDocAssembly
    Set swPart = swApp.OpenDoc(sPath & sFileSW, swDocAssembly)
    swApp.DocumentVisible True, swDocAssembly
End If

Gruss Andreas


Hallo, du setzt auf unsichtbar dann öffnest du die Datei und dann machst du sie sichtbar, aber sichtbar will ich sie ja nicht ich will sie bearbeiten und dann schließen?

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 06. Jul. 2018 16: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 Nur für fabian1243 10 Unities + Antwort hilfreich

Zitat:
... unsichtbar dann öffnest du die Datei und dann machst du sie sichtbar ...

Nein, tut er nicht.

das ist ein Schalter für swApp, nicht für swPart.
damit werden alle danach geöffneten Dateien unsichtbar (bzw. sichtbar) gehalten.
du könntest also vorher und hinterher schalten, wenn dein Kram durch ist.

swapp.documentvisible flase, swDocPart
open part 1 ... do sth ... Close part 1
...
open part 400 ... do sth ... Close part 400
swapp.documentvisible true, swDocPart

aber wenn du es nicht true stellst, kannst du vermutlich keine Teile mehr sichtbar öffnen ... 
absturz vorzeitig wäre wohl nicht so gut.

Gruß, Christian

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



CAD- Konstrukteur als Technischer Produktdesigner (m/w/d)
<...
Anzeige ansehenProduktdesign, Industriedesign
fabian1243
Mitglied
Maschinen-Konstrukteur


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

Beiträge: 44
Registriert: 28.06.2018

SW 2021
Win 10 Pro v1909

erstellt am: 06. Jul. 2018 20: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

So hab Das Problem mit dem invisible öffnen gelöst und funktioniert einwandfrei, hab alles ein bisschen zurechtgerückt dann gings.

Wer noch meine Entgültigen Code sehen will:

Code:
        '---Start Mehrere Dateien Speichern
        If Hauptform.Liste.ListCount > 0 And DoppelteCheckbox = False Then 'Dateien ausgewählt?
            For i = 0 To Hauptform.Liste.ListCount - 1
                '---Start Teile
                If VBA.UCase$(VBA.Right$(Hauptform.Liste.List(i, 1), 3)) = "PRT" Then
                    Ob_swApp.DocumentVisible False, swDocPART
                    Set IModel = Ob_swApp.OpenDoc(Hauptform.Liste.List(i, 1), swDocPART)

                End If
                '---Ende Teile
               
                '---Start Baugruppe
                If VBA.UCase$(VBA.Right$(Hauptform.Liste.List(i, 1), 3)) = "ASM" Then
                    Ob_swApp.DocumentVisible False, swDocASSEMBLY
                    Set IModel = Ob_swApp.OpenDoc(Hauptform.Liste.List(i, 1), swDocASSEMBLY)

                End If
                '---Ende Baugruppe
               
                '---Start Fixe Daten die in der ComboBox stehen eintragen
                For j = 1 To In_Max
                    If Hauptform.Controls("BoxMerken" & j).Value = True Then
                        EigenschaftenErstellen (j)
                        EigenschaftenSpeichern (j)
                    End If
                Next j
                '---Ende Fixe Daten die in der ComboBox stehen eintragen
               
                '---Start Vorschläge eintragen
                For j = 1 To In_Max
                    If Hauptform.Controls("Boxvorschlag" & j).Value = True Then
                        EigenschaftAuslesen (j)
                        EigenschaftVorschlagen (j)
                        EigenschaftenErstellen (j)
                        EigenschaftenSpeichern (j)
                    End If
                Next j
                '---Ende Vorschläge eintragen
               
                IModel.Save
            Next i
            Ob_swApp.DocumentVisible True, swDocASSEMBLY
            Ob_swApp.DocumentVisible True, swDocPART
            Set IModel = Ob_swApp.ActiveDoc

        Else
            If Not Hauptform.Liste.ListCount > 0 Then
                MsgBox "Keine Dateien ausgewählt!", vbInformation
            End If
        End If
        '---Ende Mehrere Dateien Speichern

[Diese Nachricht wurde von fabian1243 am 06. Jul. 2018 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