| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | On-Demand-Webinare zu SolidCAM (SolidCAM) |
Autor
|
Thema: mehrere Parts über VB laden (434 mal gelesen)
|
koehlerax Mitglied Systemadmin
Beiträge: 25 Registriert: 11.11.2002 Dell Precision 350 (P4 3,06GHz HT aktiv) PNY FX5900Ultra 256MB RAM 1GB HD IDE 80GB WinXP SP1 SWX 2001Plus SP4.1 Netz 100MBit
|
erstellt am: 06. Okt. 2003 18:18 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, also ich blick's mal wieder nicht mit VB und SWX :.-(. Ich möchte einfach eine große Anzahl Dokumente laden und dann auf alle eine Referenz haben womit ich diese später bearbeiten kann. Hier mal ein Beispiel wie ich es hinbekomme (nicht sehr elegant) und eins wie ich es mir vorgestellt habe (aber nicht funktioniert :-(( ). '################### 'So geht es Dim swApp As Variant Dim Part1 As Variant Dim Part2 As Variant Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True Set Part1 = swApp.OpenDoc4("Datei1.SLDPRT", 1, 0, "", longstatus) Set Part2 = swApp.OpenDoc4("Datei1.SLDPRT", 1, 0, "", longstatus) Part1.ViewZoomtofit2 Part2.ViewZoomtofit2 '################### '################### 'So geht es NICHT :-(( Dim swApp As Variant Dim Part(10) As Variant Dim i As Integer Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True For i = 1 To 10 Set Part(i) = swApp.OpenDoc4("Datei" & i & ".SLDPRT", 1, 0, "", longstatus) Next i For i = 1 To 10 Part(i).ViewZoomtofit2 Next i '################### Danke für Tipps Axel Köhler
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: 06. Okt. 2003 21:04 <-- editieren / zitieren --> Unities abgeben: Nur für koehlerax
Hallo Axel, frisch auf der CAT.Pro gerade den Arbeitsplatz eingerichtet und die Internetverbindung probiert, da hab ich doch auch was zum probieren mit Makros. So wie ich das sehe mußt du nur noch den longstatus als LONG deklarieren und dann soltle es fluppen. Sieht so aus:
Code:
Sub main() Dim swApp As Variant Dim Part(10) As Variant Dim i As Integer Dim longstatus As Long Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True Dim pfad As String Dim pname As String pfad = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\sw2003" For i = 1 To 4 pname = pfad & "\teil" & i & ".sldprt" Set Part(i) = swApp.OpenDoc4(pname, 1, 0, "", longstatus) Next i For i = 1 To 4 Part(i).ViewZoomtofit2 Next i End Sub
Ich hoffe das hilft dir weiter. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
koehlerax Mitglied Systemadmin
Beiträge: 25 Registriert: 11.11.2002 Dell Precision 350 (P4 3,06GHz HT aktiv) PNY FX5900Ultra 256MB RAM 1GB HD IDE 80GB WinXP SP1 SWX 2001Plus SP4.1 Netz 100MBit
|
erstellt am: 07. Okt. 2003 09:00 <-- editieren / zitieren --> Unities abgeben:
Na dass ist ja Super, kaum am Netz und schon gute Hilfe geleistet :-). Leider habe ich mein Beispiel wohl zu einfach gestaltet :-(. Das mit mit dem ViewZoomtofit2 funktioniert auch bei mir. Funktionen die wirklich nicht tun sind folgende: Part(i).RotateAboutCenter 0, 0.5 Part(i).ActiveView.FrameLeft = 0 Part(i).ActiveView.FrameTop = 0 Part(i).ActiveView.FrameWidth = 400 Part(i).ActiveView.FrameHeight = 300 Vielleicht gibt es ja nochmal etwas Leerlauf auf der Messe. Ansonsten viel Spaß (ich muss leider arbeiten :-( ) Gruß Axel Köhler
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: 07. Okt. 2003 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für koehlerax
Hallo Axel, hm, sieht tatsächlich so aus, als funktionieren diese Calls nur, wenn das Dokument vorher auch aktiv ist, obwohl es eigentlich ja auf das Modeldoc (bzw. den View) gehen sollte. Ist vielleicht eine Fehlermeldung für den AP-Support wert. Bis dahin kannst du den Umweg machen und das passende Dokument vorher aktiv machen; dazu mußt du dir den Namen merken. Könnte so aussehen:
Code:
Sub main() Dim swApp As Variant Dim Part(4) As Variant Dim PartPathName(4) As String Dim i As Integer Dim longstatus As Long Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True Dim pfad As String Dim pname As String pfad = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\sw2004" For i = 1 To 4 PartPathName(i) = pfad & "\teil" & i & ".sldprt" Set Part(i) = swApp.OpenDoc4(PartPathName(i), 1, 0, "", longstatus) Next i Dim actview As Object Dim dummy As Object For i = 1 To 4 Set dummy = swApp.ActivateDoc2(PartPathName(i), True, longstatus) Set actview = Part(i).ActiveView actview.RotateAboutCenter 0, 0.5 actview.FrameWidth = 400 actview.FrameHeight = 400 actview.FrameLeft = 100 Next i End Sub
Vielleicht kommst du so weiter Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
koehlerax Mitglied Systemadmin
Beiträge: 25 Registriert: 11.11.2002 Dell Precision 350 (P4 3,06GHz HT aktiv) PNY FX5900Ultra 256MB RAM 1GB HD IDE 80GB WinXP SP1 SWX 2001Plus SP4.1 Netz 100MBit
|
erstellt am: 10. Okt. 2003 16:18 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|