Autor
|
Thema: VBA Benutzerdefinierte Eigenschaften ändern bei geschlossener Datei (450 mal gelesen)
|
fabian1243 Mitglied Maschinen-Konstrukteur

 Beiträge: 26 Registriert: 28.06.2018 SW Premium 2017 x64-Edition SP3.0 Win 10 Pro v1803
|
erstellt am: 06. Jul. 2018 11:28 <-- editieren / zitieren --> Unities abgeben:         
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 Mitglied
   
 Beiträge: 1393 Registriert: 18.01.2001 arbeite mit: HP Z440 Workstation Xenon (12-Kern) 3.5GHz 32GB RAM 238GB SSD ------------------------ SWX-2016 SP5.0 DBWorks-R15 SP2.17 ---------------- Windows 7 64 bit ---------------- VB VBA Lotus Notes Datenbanken erste Schritte mit Swift
|
erstellt am: 06. Jul. 2018 11:56 <-- editieren / zitieren --> Unities abgeben:          Nur für fabian1243
|
HenryV Mitglied Konstrukteur, Engineering
  
 Beiträge: 650 Registriert: 18.05.2005 SolidWorks 2018 x64 SP4.0 Dell T3600 Workstation Intel XENON 6x3.2 GHz NVIDIA Quadro 4000 2 GB 16GB RAM 2x Dell U2412M, 24" TFT Windows 7 Professional x64 SP1 Microsoft Office Pro 2010 SP2 Kaspersky Anti-Virus 10.2.4.674 Microsoft VB 2010 Express SpacePilot von 3Dconnexion
|
erstellt am: 06. Jul. 2018 11:58 <-- editieren / zitieren --> Unities abgeben:          Nur für fabian1243
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

 Beiträge: 26 Registriert: 28.06.2018 SW Premium 2017 x64-Edition SP3.0 Win 10 Pro v1803
|
erstellt am: 06. Jul. 2018 12:04 <-- editieren / zitieren --> Unities abgeben:         
|
bk.sc Ehrenmitglied V.I.P. h.c. Maschinenbautechniker

 Beiträge: 2124 Registriert: 18.07.2012 HP Z400 Workstaion CPU: Intel Xeon 6x 3,33GHz GPU: NVIDEA Quadro 2000 RAM: 12 GB DDR3 Win 7 x64 CAD Hauptberuflich -Solid Works 2014 SP4 -Creo Elements Direct Drafting (ME10) DMS/PDM -Pro.File V8 (8.4) Simulation -Simufact Forming 11.0 CAD Nebenberuflich -Pro Engineer WF 3+4 -Creo Parametric 2.0
|
erstellt am: 06. Jul. 2018 12:39 <-- editieren / zitieren --> Unities abgeben:          Nur für fabian1243
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

 Beiträge: 26 Registriert: 28.06.2018 SW Premium 2017 x64-Edition SP3.0 Win 10 Pro v1803
|
erstellt am: 06. Jul. 2018 14:52 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von HenryV: HalloDu 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)
     
 Beiträge: 2121 Registriert: 04.04.2001 SWX 2016sp5 WIN7-64 proAlpha6.2e/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19) CSWP 12/2015
|
erstellt am: 06. Jul. 2018 16:16 <-- editieren / zitieren --> Unities abgeben:          Nur für fabian1243
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 |
fabian1243 Mitglied Maschinen-Konstrukteur

 Beiträge: 26 Registriert: 28.06.2018 SW Premium 2017 x64-Edition SP3.0 Win 10 Pro v1803
|
erstellt am: 06. Jul. 2018 20:07 <-- editieren / zitieren --> Unities abgeben:         
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 |