| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | |  | CAD-Systemwechsel - Wann lohnt sich ein Umstieg und wie gelingt er?, ein Webinar am 10.02.2026
|
|
Autor
|
Thema: Makro: Schreibschutz setzen, Öffen einer Datei mit openDoc (3407 mal gelesen)
|
currie Mitglied Betriebsmittelkonstrukteur

 Beiträge: 83 Registriert: 10.03.2005 WIN10 / SWX2020
|
erstellt am: 02. Feb. 2011 09:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo Habe ein Makro welches den Schreibschutz eines Dokuments setzt und wieder aufhebt. Zum Setzen "ReadOnly" muss die Datei geschlossen werden und dann kann ReadOnly gesetzt werden. Jetzt würde ich die Datei aber gerne wieder mit dem Makro öffnen, aber da hab ich ein Problem. Ich habe bereits Makro`s aufgezeichnet und Experimentiert aber ich bekomme es nicht hin. Hier mal der Code '-------------------------------------------------------- Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long Dim Annotation As Object Dim Gtol As Object Dim DatumTag As Object Dim FeatureData As Object Dim Feature As Object Dim Component As Object Dim intPfad As String Sub ReadOnly() ' Schreibschutz setzen Set swApp = CreateObject("SldWorks.Application") Set Part = swApp.ActiveDoc Name = Part.GetPathName() intPfad = Name swApp.CloseDoc Name Call FileSystem.SetAttr(intPfad, vbReadOnly) ' ****** Jetzt die Datei wieder öffnen "Schreibgeschützt" (intPfad) End Sub Sub Normal() ' Schreibschutz aufheben Set swApp = CreateObject("SldWorks.Application") Set Part = swApp.ActiveDoc Name = Part.GetPathName() intPfad = Name 'swApp.CloseDoc Name Call FileSystem.SetAttr(intPfad, vbNormal) End Sub '------------------------------------------------------ Vielen Dank Currie Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)

 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: 02. Feb. 2011 10:58 <-- editieren / zitieren --> Unities abgeben:          Nur für currie
Hallo Currie, das Öffnen eines Dokumentes in SolidWorks machst du mit OpenDoc6, in der Hilfe steht beschrieben, welche Parameter du dafür brauchst und auch einige Beispiele, wie das genutzt wird. Deine Beispielroutine könnte dann so aussehen, meine Ergänzungen hab ich fett markiert:
Code: Sub ReadOnly() ' ein paar Variablen, die gleich gebraucht werden Dim doctype As Long Dim ModelDoc As Object Dim openerrors As Long Dim openwarnings As Long ' Schreibschutz setzen Set swApp = CreateObject("SldWorks.Application") Set Part = swApp.ActiveDoc Name = Part.GetPathName() ' Dokumenttype merken doctype = Part.GetType intPfad = Name swApp.CloseDoc Name Call SetAttr(intPfad, vbReadOnly) ' ****** Jetzt die Datei wieder öffnen "Schreibgeschützt" (intPfad) Set ModelDoc = swApp.OpenDoc6(intPfad, doctype, swOpenDocOptions_Silent + swOpenDocOptions_ReadOnly, "", openerrors, openwarnings) End Sub
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 |
currie Mitglied Betriebsmittelkonstrukteur

 Beiträge: 83 Registriert: 10.03.2005 WIN10 / SWX2020
|
erstellt am: 02. Feb. 2011 11:42 <-- editieren / zitieren --> Unities abgeben:         
Hallo Stefan Erstmal vielen Dank, jetzt geht es einwand frei. Ich muss zugeben, dass ich in der API Hilfe nicht alles durchsucht habe. Irgend wie komme ich mit dieser Hilfe nicht so ganz zurecht. Zudem weis man ja dass hier im Forum so ein Problemchen sehr schnell gelöst wird, nicht dass ich zu Faul bin aber wenn man das im Hinterkopf hat gibt mann doch etwas schneller auf beim suchen. Zudem können andere User den Code eventuell auch gebrauchen. Danke Currie Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |