Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  mehrere Parts über VB laden

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
  
On-Demand-Webinare zu SolidCAM (SolidCAM)
Autor Thema:  mehrere Parts über VB laden (434 mal gelesen)
koehlerax
Mitglied
Systemadmin


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

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 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 Leute,

also ich blick's mal wieder nicht mit VB und SWXSolidWorks :.-(. 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)



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: 06. Okt. 2003 21: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 Nur für koehlerax 10 Unities + Antwort hilfreich

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


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

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 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

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)



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: 07. Okt. 2003 13:32    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 koehlerax 10 Unities + Antwort hilfreich

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


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

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 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

Danke so funktioniert es.

  KoehlerAx

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