Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  wechsel von Zeichnung ins teil

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
  
SOLIDWORKS 3D CAD Grundlagen E-Learning (SOLIDWORKS)
Autor Thema:  wechsel von Zeichnung ins teil (2145 mal gelesen)
oma1
Mitglied
designer


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

Beiträge: 131
Registriert: 22.03.2005

SW 2007 SP 3.4<P>Windows XP SP2<P>DELL Precision M65
Intel Core 2
2Ghz
2GB RAM

erstellt am: 26. Okt. 2006 10:50    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

Folgender Fall:
Ich habe eine Zeichnung geöffnet und in der Variable "partdateipfad" steht, wo das Teil liegt, das in der Zeichnung detailliert ist.
Ich will nun mit dem Befehl (siehe nachstehend):

Set SwApp = Application.SldWorks
        Set Draw = SwApp.ActiveDoc
        Set SelMgr = Part.SelectionManager
        'boolstatus = Part.ActivateView("Zeichenansicht1")
        'boolstatus = Part.Extension.SelectByID2("Zeichenansicht1", "DRAWINGVIEW", 0.1184391127542, 0.2058962107209, 0, False, 0, Nothing, 0)
        Set Draw = SwApp.OpenDoc6(partdateipfad, 1, 0, "", longstatus, longwarnings)
        Set Draw = SwApp.ActivateDoc2(Datei, False, longstatus)
       
               
        'prt-Datei aktivieren
        SwApp.Visible = True
        Set Model = SwApp.ActiveDoc
        'Index aus datei an wert1 übergeben
        wert1 = Model.CustomInfo("dateiindex")

in dei Datei wechslen und den den wert1 auslesen.

Dies haut bei Teilen und bei Zeichungen, die neu sind (seit es das Macro gibt) hin. Bei alten wechselt der Befehl nicht in die Part-Datei.

Woran kan das leigen.

Gibt es noch einen eifacheren Befehl, mit dem man von der Zeichung ins Teil wechselt???
Das Teil liegt übrigens genau da, wo auch die Zeichung leigt, und heißt auch genauso (Bis auf die Endung :-))

HIIIIIIIIIIIIIIIIIIILFEEEEEEEEEEEEEEEEE !!!!!

------------------
cma

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 26. Okt. 2006 11: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 Nur für oma1 10 Unities + Antwort hilfreich

Sind die alten schon gespeicherte und die neuen ungespeicherte? Dann kann es am Titel des Dokumentfensters liegen, weil entweder eine Endung dranhängt oder noch nicht...
Du gibst ja Model nur das ActiveDoc. Interessant wäre, ob Du das auch vorher lädst oder ob es schon auf ist oder eben neu, da fehlt noch eine Zuweisung.

------------------
Lutz Federbusch
Mein Gästebuch
Der Mensch, Herr oder Sklave der Technik?

[Diese Nachricht wurde von Lutz Federbusch am 26. Okt. 2006 editiert.]

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 26. Okt. 2006 11:11    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 oma1 10 Unities + Antwort hilfreich

Hallo oma 1
Woher bekommst du den Parameter Datei, welchen du in folgendem Programmteil verwendest?

Code:
Set Draw = SwApp.ActivateDoc2(Datei, False, longstatus)

Ersetze diesen evtl. durch Draw.GetTitle, dann müsste dein Bauteil aktivert werden.

Kann es aber auch sein das dein OpenDoc6 befehl nicht funktioniert?
Ectl. ist das Bauteil schon im SolidWorks hintergrund geöffent, oder der Parameter partdateipfad ist nicht richtig belegt.

Kleines Makro von mir welches ein Bauteil aktivert

Code:
Sub main()

    partdateipfad = "???"

    Set oSwApp = Application.SldWorks
    oSwApp.Visible = True
   
    Set oSwModel = swApp.ActiveDoc
   
    Set oSwDrawingModel = _
        oSwApp.OpenDoc6( _
            partdateipfad, 1, 0, "", _
            longstatus, longwarnings)
    Set oSwDrawingModel = _
        oSwApp.ActivateDoc2( _
            oSwDrawingModel.GetTitle, False, longstatus)
     
    'Index aus datei an wert1 übergeben
    wert1 = oSwDrawingModel.CustomInfo("dateiindex")
       
End Sub


Die Belegung der Varible partdateipfad habe ich mit "???" gekennzeichnet, da ich nicht weis wo du diese Informationen her bekommst.
Hinweis:
Man kann den Pfad auch aus einer Ansicht der Zeichnung auslesen, nur als Vorschlag.

Ich hoffe es hilft dir weiter!

------------------
Mfg Daniel

Es gibt nur drei Möglichkeiten: Sieg, Unentschieden oder Niederlage
----------------------------------------------
Effektive Produktivitätswerkzeuge in der Konstruktion und Zeichnungserstellung.
Automatisiert komplette Baugruppen, Teile und Zeichnungen nach Kundenvorgaben.

SolidWorks API Programmierung; Tools und Addin's für SolidWorks
kontakt@schuler-da.de

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

oma1
Mitglied
designer


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

Beiträge: 131
Registriert: 22.03.2005

SW 2007 SP 3.4<P>Windows XP SP2<P>DELL Precision M65
Intel Core 2
2Ghz
2GB RAM

erstellt am: 26. Okt. 2006 11:11    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

Alle Dateien auch die alten sind gespeichert!!!!!!!!!!!!!

------------------
cma

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

P.Reidel
Mitglied



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

Beiträge: 53
Registriert: 17.12.2004

SolidWorks 2007

erstellt am: 26. Okt. 2006 11: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 oma1 10 Unities + Antwort hilfreich

Hallo oma1,

ich übernehme das Objekt wenns geht direkt mit dem Dateinamen:
retval = SldWorks.ActivateDoc2 ( name, silent, &errors )
In deinem Fall:
Set Model = SwApp.ActivateDoc2 ("Pfad\Dateiname.sldprt", false, &errors )

Auch haben wir festgestellt, dass Dateien nicht immer geladen/geöffnet werden, wenn im (Windows-)Explorer die Dateianhänge nicht angezeigt werden.

Grüße, Petra

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

oma1
Mitglied
designer


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

Beiträge: 131
Registriert: 22.03.2005

SW 2007 SP 3.4<P>Windows XP SP2<P>DELL Precision M65
Intel Core 2
2Ghz
2GB RAM

erstellt am: 26. Okt. 2006 11:20    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

@tbd  Das wars !!! Es funzt !!!!!!!!

10 Us an Dich !!!!!

------------------
cma

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

VBSpawn
Mitglied
Programmierer


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

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 26. Okt. 2006 11:36    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 oma1 10 Unities + Antwort hilfreich

Hi zusammen,

einwenig Senf hab ich auch noch.

1. Props sind CaseSensitiv

und so sieht meine Lösung aus

Code:

Sub main()
    Set swApp = Application.SldWorks
        Dim partfile As String
        Dim mDoc As ModelDoc2
        Dim pDoc As ModelDoc2
        Dim lerr As Long
        Dim lWarn As Long
        Dim RetWert As String
        Dim cust As Variant
        Dim i As Integer

    On Error GoTo fail
   
    If Not swApp.ActiveDoc Is Nothing Then
        Set mDoc = swApp.ActiveDoc
            If mDoc.GetType = 3 Then
                partfile = Replace(LCase(mDoc.GetPathName), ".slddrw", ".sldprt")
                If FileSystem.FileLen(partfile) > 0 Then
                    Set pDoc = swApp.OpenDoc6(partfile, 1, 0, "Default", lerr, lWarn)
                        Call swApp.ActivateDoc2(pDoc.GetTitle, False, lerr)
                        If lerr <> 0 Then
                            Err.Raise -1, "FileOpen", "Fehler beim Öffnen der Datei " & partfile
                        End If
               
                        cust = pDoc.GetCustomInfoNames2("")
                        For i = LBound(cust) To UBound(cust)
                            If LCase(cust(i)) = "dateiindex" Then
                                RetWert = pDoc.GetCustomInfoValue("", cust(i))
                                Exit For
                            End If
                        Next i
                        Err.Raise -2, "FileOpen", "Dateieigenschaft nicht gefunden."
               
                Else
                    Err.Raise -3, "FileOpen", "Datei nicht gefunden."
            End If
        Else
            Err.Raise -4, "FileOpen", "Kein Drawing geladen."
        End If
    Else
        Err.Raise -5, "FileOpen", "Kein Dokument geladen."
    End If
Exit Sub
fail:
MsgBox "Fehler:" & Err.Number & vbCrLf & "Beschreibung:" & Err.Description, vbInformation + vbOKOnly
End Sub


------------------
Manche Menschen gehen so plötzlich, daß die Zeit für einen Abschied nicht reicht…

Zitat:
Interpunktion und Orthographie des Postings sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

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

oma1
Mitglied
designer


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

Beiträge: 131
Registriert: 22.03.2005

SW 2007 SP 3.4<P>Windows XP SP2<P>DELL Precision M65
Intel Core 2
2Ghz
2GB RAM

erstellt am: 26. Okt. 2006 15:13    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

@bd:

Dein Programm haut zwar bei den alten Teilen hin, nur leider blockt es jetzt bei Baugruppen ab.

Wenn ich mein altes Macro hernehme, kann ich erkenne, dass beim öffnen des Teils die Variable longstatus auf 2 gesetzt wird.
Wenn das MAcro funktioniert, ist die Variable auf 0.

Ich kann nicht herausfinden, was mir der longststus= 2 zu verstehen geben mag.

Der lngstatus wird übrigends auf 2 gesetzt, wenn ich dein Macro bei Baugruppen verwende !!!

Ich bin schon schier am verzweifeln !!!!!

------------------
cma

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

oma1
Mitglied
designer


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

Beiträge: 131
Registriert: 22.03.2005

SW 2007 SP 3.4<P>Windows XP SP2<P>DELL Precision M65
Intel Core 2
2Ghz
2GB RAM

erstellt am: 26. Okt. 2006 15: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

Hab jetzt diese Fehelrmeldungen für longstatus gefunden:

swIdMatchError

swReadOnlyWarn

swSharingViolationWarn

swDrawingANSIUpdateWarn

swSheetScaleUpdateWarn

swNeedsRegenWarn

swBasePartNotLoadedWarn

swFileAlreadyOpenWarn

swInvalidFileTypeError

swDrawingsOnlyRapidDraftWarn

swViewOnlyRestrictions

swFutureVersion

swViewMissingReferencedConfig

swDrawingSFSymbolConvertWarn


Wenn ich es richtig sehe, ist dann die 2 die Meldung

swReadOnlyWarn.

Was soll das bedeuten??
Dass sie schriebgescütz ist ??

Ich will eh nur was auslesen, und nix schriebn !!!!

------------------
cma

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

VBSpawn
Mitglied
Programmierer


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

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 26. Okt. 2006 15:40    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 oma1 10 Unities + Antwort hilfreich

Hi,

du musst beim Open Befehl nach sldprt oder sldasm unterscheiden.
anstelle von

swApp.OpenDoc6(partfile, 1, 0, "Default", lerr, lWarn) 'PART

swApp.OpenDoc6(partfile, 2, 0, "Default", lerr, lWarn) 'ASSEMBLY

Gruß
Micha

------------------
Manche Menschen gehen so plötzlich, daß die Zeit für einen Abschied nicht reicht…

Zitat:
Interpunktion und Orthographie des Postings sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 26. Okt. 2006 15:44    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 oma1 10 Unities + Antwort hilfreich

Hallo oma1,

Bei dieser Variable handelt es sich eigentlich um eine SolidWorks Konstante, welche den Fehlertyp definiert!
Diese Konstante kannst du durch einen Verweis auf die Constant Type Library in dein Makro einbinden, oder Sie direkt in deim Makro deklarieren:

Code:

'Public Enum FileLoadError_e

Public Const swGenericError = 1
Public Const swFileNotFoundError = 2
Public Const swIdMatchError = 4
Public Const swReadOnlyWarn = 8
Public Const swSharingViolationWarn = 16
Public Const swDrawingANSIUpdateWarn = 32
Public Const swSheetScaleUpdateWarn = 64
Public Const swNeedsRegenWarn = 128
Public Const swBasePartNotLoadedWarn = 256
Public Const swFileAlreadyOpenWarn = 512
Public Const swInvalidFileTypeError = 1024
Public Const swDrawingsOnlyRapidDraftWarn = 2048
Public Const swViewOnlyRestrictions = 4096
Public Const swFutureVersion = 8192
Public Const swViewMissingReferencedConfig = 16384
Public Const swDrawingSFSymbolConvertWarn = 32768
Public Const swFileWithSameTitleAlreadyOpen = 65536


longstatus 2 bedeutet also das diese Datei nicht existriert! (Flascher Pfad)
Wann wird dir dieser longstatus zurück gegeben, beim Befehl OpenDoc6 oder ActivateDoc2?

------------------
Mfg Daniel

Es gibt nur drei Möglichkeiten: Sieg, Unentschieden oder Niederlage
----------------------------------------------
Effektive Produktivitätswerkzeuge in der Konstruktion und Zeichnungserstellung.
Automatisiert komplette Baugruppen, Teile und Zeichnungen nach Kundenvorgaben.

SolidWorks API Programmierung; Tools und Addin's für SolidWorks
kontakt@schuler-da.de 

[Diese Nachricht wurde von tbd am 26. Okt. 2006 editiert.]

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

oma1
Mitglied
designer


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

Beiträge: 131
Registriert: 22.03.2005

SW 2007 SP 3.4<P>Windows XP SP2<P>DELL Precision M65
Intel Core 2
2Ghz
2GB RAM

erstellt am: 26. Okt. 2006 16: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

Bei openDoc6!

Aber es gibt keinen Unterschied zu neuen und alten dateien.

Es liegt immer die Zeichnung und das Teil im gleichen ordner !!!

Aber was mir auffällt:

Man muss beim opendoc ja angeben, ob man ein Teil, oder eine BG aufmachen will.

Ich hab unwissend 1 (=part) angegeben. Das hat SW aber nicht gekümmert und es macht beides auf, ja nach dem was in der ZTeichung ist.

Wenn SW das haben will, muss ich ja abfragen, was in der Zeichnung drinnen ist. Ob Part oder Baugruppe.

Wie mach ich denn das ???

------------------
cma

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 26. Okt. 2006 16:55    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 oma1 10 Unities + Antwort hilfreich

Hallo Oma1,

Man ermittelt auf welches Dokument sich die ersten Zeichnungsansicht bezieht.
Dieses kann man dann weiter auswerten (durch Extension).
Somit öffnest du immer das richtige Dokument!
Mit dem im Beispiel befüllten Objekt oSwTeilModelDoc kannst du dann wieter arbeiten.

Hier das Beispiel:

Code:

Option Compare Text

Dim oSwApp As SldWorks.SldWorks
Dim oSwModelDoc As SldWorks.ModelDoc2
Dim lStatus As Long
Dim lWarnings As Long
Dim bstatus As Boolean

Sub main()

    'Daniel Bühling
    'Schuler Design Automation GmbH
    'Api-Programmierung / Schulung / Tools / Addins
    'www.schuler-da.de

    Dim oSwDrawing As SldWorks.DrawingDoc
    Dim oSwTeilModelDoc As SldWorks.ModelDoc2
    Dim oSwView As SldWorks.View
    Dim sModelPfad As String
    Dim lDocTyp As Long
   
        Set oSwApp = Application.SldWorks
        Set oSwModelDoc = oSwApp.ActiveDoc
       
        If oSwModelDoc.GetType = swDocDRAWING Then
            Set oSwDrawing = oSwModelDoc
            Set oSwView = oSwDrawing.GetFirstView
            'Um das Zeichnungsblatt zu überspringen
            Set oSwView = oSwView.GetNextView

            If Not oSwView Is Nothing Then
               
                'Referenz der ersten Ansicht ermitteln
                sModelPfad = oSwView.GetReferencedModelName
               
                'Extension der Referen ermitteln
                Select Case Right(sModelPfad, 6)
                    Case "sldprt"
                        lDocTyp = swDocPART
                    Case "sldasm"
                        lDocTyp = swDocASSEMBLY
                    Case Else
                        lDocTyp = swDocNONE
                        Debug.Assert (False)
                End Select
               
                If lDocTyp <> swDocNONE Then
                    'Teil oder Baugruppe der Zeichnung öffnen
                    Set oSwTeilModelDoc = _
                        oSwApp.OpenDoc6( _
                        sModelPfad, lDocTyp, 0, "", _
                        lStatus, lWarnings)
                    Set oSwDrawingModel = _
                        oSwApp.ActivateDoc2( _
                        oSwTeilModelDoc.GetTitle, False, lStatus)
                End If
            End If
        End If

        Set oSwDrawing = Nothing
        Set oSwView = Nothing
End Sub


------------------
Mfg Daniel

Es gibt nur drei Möglichkeiten: Sieg, Unentschieden oder Niederlage
----------------------------------------------
Effektive Produktivitätswerkzeuge in der Konstruktion und Zeichnungserstellung.
Automatisiert komplette Baugruppen, Teile und Zeichnungen nach Kundenvorgaben.

SolidWorks API Programmierung; Tools und Addin's für SolidWorks
kontakt@schuler-da.de

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

oma1
Mitglied
designer


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

Beiträge: 131
Registriert: 22.03.2005

SW 2007 SP 3.4<P>Windows XP SP2<P>DELL Precision M65
Intel Core 2
2Ghz
2GB RAM

erstellt am: 26. Okt. 2006 17:36    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

habs jetzt selber geschafft !!!

Danke euch allen.

Öffne erst ein part. ist longstatus 2, dann öffne ich asm.

------------------
cma

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