Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro: Part aus aktiver Zeichnung öffnen

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
  
SPINNER Hausausstellung
Autor Thema:  Makro: Part aus aktiver Zeichnung öffnen (1443 mal gelesen)
Sebocali
Mitglied
Konstrukteur

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

Beiträge: 2
Registriert: 04.06.2020

erstellt am: 04. Jun. 2020 10:19    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

Guten Morgen  ,

Könnte mir jmd. ein Makro bereitstellen mit dem ich aus der aktiven Zeichnung das  zugehörige Teil oder Baugruppe öffnen kann?
Benötige dies für ein Makro mit dem ich PDF,DXF und STEP aus Zeichnung und Part erstelle und an einem Ort abspeichere.
Danke im Voraus. 

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

CAD-Maler
Mitglied
Konstrukteur / CAD-Admin / Mädchen für alles


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

Beiträge: 720
Registriert: 17.01.2007

SWX 2019 SP5
AutoCAD 2019
Win 10 pro 64 bit
Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz
64GB RAM
Nvidia Quadro M5000
SWx EPDM

erstellt am: 04. Jun. 2020 10:35    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 Sebocali 10 Unities + Antwort hilfreich

Code:

    'Modell holen
    Set View = swModel.GetFirstView
    Set View = View.GetNextView
   
    ViewName = View.Name
    RefModelName = View.GetReferencedModelName
   
    Select Case UCase(Right(RefModelName, 6))
    Case "SLDPRT"
        SWXTypeOfFile = swDocPART
    Case "SLDASM"
        SWXTypeOfFile = swDocASSEMBLY
    Case "SLDDRW"
        SWXTypeOfFile = swDocDRAWING
    Case Else
        SWXTypeOfFile = swDocNONE
    End Select
   
    If SWXTypeOfFile = swDocNONE Then
        MsgBox "Leere Zeichnung!", vbCritical, "Fehler!"
        End
    End If
   
    ConfigName = View.ReferencedConfiguration
   
    Set swPart = swApp.OpenDoc(RefModelName, SWXTypeOfFile)
    Set swPart = swApp.ActivateDoc2(RefModelName, True, nErrors) 'swPart wird manchmal nicht korrekt zugewiesen, deshalb "doppelte" Zuweisung


Gruß, Jens

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

Sebocali
Mitglied
Konstrukteur

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

Beiträge: 2
Registriert: 04.06.2020

erstellt am: 04. Jun. 2020 12:19    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 Jens für die schnelle Antwort.

Kannst du mir das unten einpflegen? Wo ich das geöffnete Part oder die Baugruppe als STEP abspeichere. Steh da auf dem Schlauch 

Sub main()

Dim swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, sPathName As String
Dim sReference As String, sSaveName As String, longstatus As Long, myRev As String

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

If swModel Is Nothing Then
    MsgBox ("Pas de document ouvert")
ElseIf swModel.GetType <> 3 Then
    MsgBox ("Il ne s'ag?t pas d'une mise en plan")
Else
  sPathName = swModel.GetPathName 'recupere le nom complet du document actif
  sReference = Mid(sPathName, InStrRev(sPathName, "\") + 1) 'R?cup?re tout ce qui se situe apr?s le dernier \
  sReference = Left(sReference, Len(sReference) - 7) 'Suppression des 6 caract?res correspondant ? l'extension de fichier et du .
Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

' Zoom To Fit
Part.ViewZoomtofit2
Part.SheetPrevious

' Redraw
Part.GraphicsRedraw2

' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1

' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1

' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1

' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1

' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1

' Save As
longstatus = Part.SaveAs3("V:\CAD-Dateien\" + sReference + ".DXF", 0, 0)

' Zoom To Fit
Part.ViewZoomtofit2

' Save As
longstatus = Part.SaveAs3("V:\CAD-Dateien\" + sReference + ".PDF", 0, 0)

' Zoom To Fit
Part.ViewZoomtofit2

' Save As
'longstatus = Part.SaveAs3("Z:\Auftr?ge\2018\AT-18-3910 VACUUMSCHMELZE -- Aut. Drahtabisolier und Wickelanlage\06-Konstruktion\09-Doku\12 - Zeichnungen\TIF\" + sReference + ".TIF", 0, 0)
'boolstatus = Part.ActivateView("Zeichenansicht4")
'boolstatus = Part.Extension.SelectByID2("Zeichenansicht4", "DRAWINGVIEW", 5.69026915807265E-02, 0.182964526197014, 0, False, 0, Nothing, 0)
'Part.OpenCompFile

' Open (Hier sollte das Part zur aktuellen Ansicht geöffnet werden)
Set Part = swApp.OpenDoc6("C:\DPSMZVS\Projekte\Kunden\Vacuumschmelze\AT-18-3910 Automarische Drahabisolier und Wickelanlage\" + sReference + ".SLDPRT", 1, 192, "", longstatus, longwarnings)
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 22
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "" + sReference + ".SLDPRT", False, longstatus
Set Part = swApp.ActiveDoc
Part.ClearSelection2 True
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized

' Save As
longstatus = Part.SaveAs3("V:\CAD-Dateien\" + sReference + ".STEP", 0, 0)

' Close Document
'swPart = Nothing
Set Part = Nothing
swApp.CloseDoc "" + sReference + ".SLDPRT"
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 0
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "" + sReference + " - Blatt1", False, longstatus
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized

End If

End Sub

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

CAD-Maler
Mitglied
Konstrukteur / CAD-Admin / Mädchen für alles


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

Beiträge: 720
Registriert: 17.01.2007

SWX 2019 SP5
AutoCAD 2019
Win 10 pro 64 bit
Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz
64GB RAM
Nvidia Quadro M5000
SWx EPDM

erstellt am: 05. Jun. 2020 11: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 Sebocali 10 Unities + Antwort hilfreich

Ohne Test:

Code:
' Open (Hier sollte das Part zur aktuellen Ansicht geöffnet werden)
Set View = Part.GetFirstView
    Set View = View.GetNextView
 
    RefModelName = View.GetReferencedModelName
 
    Select Case UCase(Right(RefModelName, 6))
    Case "SLDPRT"
        SWXTypeOfFile = swDocPART
    Case "SLDASM"
        SWXTypeOfFile = swDocASSEMBLY
    Case "SLDDRW"
        SWXTypeOfFile = swDocDRAWING
    Case Else
        SWXTypeOfFile = swDocNONE
    End Select
 
    Set Part = swApp.OpenDoc(RefModelName, SWXTypeOfFile)
    Set Part = swApp.ActivateDoc2(RefModelName, True, nErrors)

'Set Part = swApp.OpenDoc6("C:\DPSMZVS\Projekte\Kunden\Vacuumschmelze\AT-18-3910 Automarische Drahabisolier und Wickelanlage\" + sReference + ".SLDPRT", 1, 192, "", longstatus, longwarnings)
'Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 22
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "" + sReference + ".SLDPRT", False, longstatus
Set Part = swApp.ActiveDoc
Part.ClearSelection2 True
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized

' Save As
longstatus = Part.SaveAs3("V:\CAD-Dateien\" + sReference + ".STEP", 0, 0)


Gruß, Jens

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

- HH -
Mitglied
Konstrukteur Automatisierungstechnik


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

Beiträge: 181
Registriert: 26.11.2004

SWX 2020 SP4.0
HPZ440 Workstation
Intel Xeon CPU E5-1620 v4 @3,50GHz
32GB RAM
Quadro M4000

erstellt am: 01. Nov. 2020 21:25    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 Sebocali 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Sebocali:
Guten Morgen    ,

Könnte mir jmd. ein Makro bereitstellen mit dem ich aus der aktiven Zeichnung das  zugehörige Teil oder Baugruppe öffnen kann?
Benötige dies für ein Makro mit dem ich PDF,DXF und STEP aus Zeichnung und Part erstelle und an einem Ort abspeichere.
Danke im Voraus.   



Bin auch grad dabei sowas zu programmieren.

Mein Makro muss alle Dateien in den eingegebenen Verzeichnis  (Wahlweise mit oder ohne Unterverzeichnisse) durchsuchen, alle Zeichnungen öffnen und schauen ob in dem Part bei Eigenschaften => Lieferanten ein bestimmter Name steht und dann die Zeichnung als pdf, dwg oder den Part zusätzlich als Step in ein Zielverzeichnis abspeichern.

So möchte ich mir nach Projektfertigstellung die mühsame abspeicherei für unsere Zulieferer ersparen.
Bei mir kanns aber noch länger dauern, ich scheitere leider immer wieder an den einfachsten Programmier-Geschichten.  

Wenn du was hast, sag Bescheid, und wenn ich meins habe, dann geb ich Bescheid.


[Diese Nachricht wurde von - HH - am 01. Nov. 2020 editiert.]

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