Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Hilfe bei Macro - speichern als DWG

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
Autor Thema:   Hilfe bei Macro - speichern als DWG (2117 mal gelesen)
SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

Hardware:
- Lenovo-W540
Software:
- Win10 Pro 64bit
- Autocad 2018-2020 (Vollversion+LT)
- BricsCad
- DraftSight
- SolidWorks 2017-2019
- SWOOD 2019
- MasterCAM 2018-2019

erstellt am: 28. Apr. 2015 14: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

Hallo,

kann mir vielleicht jemand bei der Änderung eines Makros behilflich sein?
Ich möchte eine Zeichnung automatisch als DWG abspeichern, die Datei soll unter gleichem Namen in C:\TEMP\SWX\Zeichnungsableitung\ landen...

Code:

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.OpenDoc6(" .SLDPRT", 1, 0, "", longstatus, longwarnings)
swApp.ActivateDoc2 "Blende-links.SLDPRT", False, longstatus
Set Part = swApp.ActiveDoc
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 22
Set myModelView = Part.ActiveView
myModelView.FrameWidth = 2250
myModelView.FrameHeight = 1231
Set Part = swApp.NewDocument("V:\4000_SolidWorks\4100_Vorlagen\4130_Zeichnung\Zeichnungsableitung_DWG.drwdot", 12, 10, 10)
Set myModelView = Part.ActiveView
myModelView.FrameWidth = 2250
myModelView.FrameHeight = 1292
Part.ViewZoomtofit2
Part.SheetPrevious
boolstatus = Part.EditRebuild3()
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
Part.ViewZoomtofit2
longstatus = Part.SaveAs3("C:\TEMP\SWX\Zeichnungsableitung\ .DWG", 0, 0)
End Sub


Was muss ich da beim Zeichnungsnamen eintragen, so dass er mir das auf jede beliebige Zeichnung ausführen kann? Weiß das jemand?

[Diese Nachricht wurde von SNOOP_69 am 28. Apr. 2015 editiert.]

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: 3084
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016
ERP ProAlpha + CA-Link
Intel Core i7 860 16GB
Win7x64 QuadroFX1800
SpacePilot

erstellt am: 28. Apr. 2015 16:10    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 SNOOP_69 10 Unities + Antwort hilfreich

Was soll denn das Makro machen? Wenn Du alle Dateien aus einem Ordner laden und umwandeln willst, mußt Du Dir alle mit der passenden Dateiendung geben lassen, laden und speichern (DIR- Befehl). Wenn Du schon geöffnete Dateien speichern willst, mußt Du Dir den Namen des jeweiligen Fensters (GetTitle) besorgen.

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

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: 29. Apr. 2015 07:53    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 SNOOP_69 10 Unities + Antwort hilfreich

Hallo SNOOP_69,

wie Lutz gesagt hat, um das breiter lauffähig zu machen brauchst du den Namen des aktiven Dokumentes, das geht am einfachsten mit der ModelDoc2::GetTiltle. Da kannst du dann die Endung anschneiden und hast den Dateinamenteil.

Ein Codebeispiel dafür findest du z.B. in der API Hilfe, im Makro DXF speichern alle Blätter oder auch per Suchfunktion hier im Brett.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

erstellt am: 29. Apr. 2015 14: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

Zitat:
Was soll denn das Makro machen?

ich wollte aus allen Parts (die in einem Ordner liegen) jeweils eine Zeichnung mit einer speziellen Vorlage erstellen (in dieser Vorlage sind alle Ansichten voreingestellt und sollten sich eigentlich auch automatisch einfügen (klappt zumindest wenn ich "Zeichnung aus Bauteil erstellen) anklicke fehlerfrei.
Ich bekomme es aber leider nicht wirklich hin...diese Makro-Geschichte übersteigt meine Fähigkeiten...
Danke euch trotzdem!

Gruß 

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

SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

Hardware:
- Lenovo-W540
Software:
- Win10 Pro 64bit
- Autocad 2018-2020 (Vollversion+LT)
- BricsCad
- DraftSight
- SolidWorks 2017-2019
- SWOOD 2019
- MasterCAM 2018-2019

erstellt am: 30. Apr. 2015 09: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

so...das erstellen der Zeichnung habe ich soweit hinbekommen...

kann mir jemand noch helfen und das "speichern als dwg unter gleichem namen" mit einbauen?!

Code:
    Dim swApp As SldWorks.SldWorks
    Dim swCurModel As SldWorks.ModelDoc2
    Dim swDraw As SldWorks.DrawingDoc

    Sub main()

        Set swApp = Application.SldWorks
   
        Set swCurModel = swApp.ActiveDoc
   
        If swCurModel.GetPathName <> "" Then
            Dim drawTemplate As String
            drawTemplate = swApp.GetUserPreferenceStringValue(swUserPreferenceStringValue_e.swDefaultTemplateDrawing)
            If drawTemplate = "" Then
                MsgBox "Template is not found"
                End
            End If

            Set swDraw = swApp.NewDocument("V:\4000_SolidWorks\4100_Vorlagen\4130_Zeichnung\Zeichnungsableitung_DWG.drwdot", 12, 10, 10)
            swDraw.InsertModelInPredefinedView swCurModel.GetPathName()

        Else
            MsgBox "Please save the model"
        End If

    End Sub


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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1333
Registriert: 24.07.2002

AutoCAD ACA 2019
Solidworks 2019 Sp2
Enterprise PDM 2019 Sp2
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Dell Ultrasharp U2415
Dell M4800

erstellt am: 30. Apr. 2015 09: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 SNOOP_69 10 Unities + Antwort hilfreich

Hi,

Du kannst den kompletten Pfad mit Dateinamen und Endung mittels GetPathName ermitteln.
Dann ersetzt du die Dateiendung bei dem String mit ".DWG" und kann mit SaveAs die Datei speichern.
Was hast du denn Vor?! Willst du deine Platten für die CNC ausgeben?!
Kann das dein Swood nicht?!

Gruß, Carsten

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

SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

erstellt am: 30. Apr. 2015 09:47    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

Hi Carsten,

uns fehlt die CAM-Anbindung noch...deshalb muss ich für unsere AV beim aktuellen Projekt noch den Weg über ACAD gehen...
Mir fehlt leider das Knowhow...

kann mir bitte jemand unten in das Makro ein "einfaches" SaveAs einbauen...ich schaffe es einfach nicht...
Ich möchte die entstandene Zeichnungsdatei als SLDDRW in folgendem Ordner Speichern "C:\TEMP\SWX\Zeichnungsableitung\XXX.slddrw"

Code:
Dim swApp As SldWorks.SldWorks
    Dim swCurModel As SldWorks.ModelDoc2
    Dim swDraw As SldWorks.DrawingDoc

    Sub main()

        Set swApp = Application.SldWorks
   
        Set swCurModel = swApp.ActiveDoc
   
        If swCurModel.GetPathName <> "" Then
            Dim drawTemplate As String
            drawTemplate = swApp.GetUserPreferenceStringValue(swUserPreferenceStringValue_e.swDefaultTemplateDrawing)
            If drawTemplate = "" Then
                MsgBox "Template is not found"
                End
            End If

            Set swDraw = swApp.NewDocument("V:\4000_SolidWorks\4100_Vorlagen\4130_Zeichnung\Zeichnungsableitung_DWG.drwdot", 12, 10, 10)
            swDraw.InsertModelInPredefinedView swCurModel.GetPathName()

        Else
            MsgBox "Please save the model"
        End If

    End Sub


          

[Diese Nachricht wurde von SNOOP_69 am 30. Apr. 2015 editiert.]

[Diese Nachricht wurde von SNOOP_69 am 30. Apr. 2015 editiert.]

[Diese Nachricht wurde von SNOOP_69 am 30. Apr. 2015 editiert.]

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1333
Registriert: 24.07.2002

AutoCAD ACA 2019
Solidworks 2019 Sp2
Enterprise PDM 2019 Sp2
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Dell Ultrasharp U2415
Dell M4800

erstellt am: 30. Apr. 2015 10:48    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 SNOOP_69 10 Unities + Antwort hilfreich

Hi,

Füge mal folgendes ein:

Code:
Dim Dateiname As String
Dim Splitty() As String
Splitty = Split(swApp.ActiveDoc.GetPathName, "\")
Splitty = Split(Splitty(UBound(Splitty)), ".")
Dateiname = "C:\TEMP\SWX\Zeichnungsableitung\" & Splitty(0) & ".dwg"
swdraw.SaveAs2 Dateiname, 0, True, False

Gruß, Carsten

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

SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

erstellt am: 10. Jun. 2015 12:45    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

ich muss den Beitrag nochmal aufgreifen...

das Makro läuft mittlerweile wunderbar, nur eine Kleinigkeit müsste ich noch mit einbauen (hoffentlich mit eurer Hilfe)
ich möchte gerne im Dateinamen der DWG-Datei ganz vorne die Eigenschaft (Benutzer+Konfig) PARTNO stehen haben...wie müsste das Makro dazu erweitert werden?

Code:
    Dim swApp As SldWorks.SldWorks
    Dim swCurModel As SldWorks.ModelDoc2
    Dim swDraw As SldWorks.DrawingDoc
    Dim fullname, finame, fnamenoext, foname As String
    Sub main()

        Set swApp = Application.SldWorks
   
        Set swCurModel = swApp.ActiveDoc
   
        If swCurModel.GetPathName <> "" Then
            Dim drawTemplate As String
            drawTemplate = swApp.GetUserPreferenceStringValue(swUserPreferenceStringValue_e.swDefaultTemplateDrawing)
            If drawTemplate = "" Then
                MsgBox "Template is not found"
                End
            End If

            Set swDraw = swApp.NewDocument("V:\4000_SolidWorks\4100_Vorlagen\4130_Zeichnung\Zeichnungsableitung_DWG.drwdot", 12, 10, 10)
            swDraw.InsertModelInPredefinedView swCurModel.GetPathName()
            fullname = swCurModel.GetPathName
            finame = Right(fullname, Len(fullname) - InStrRev(fullname, "\"))
            fnamenoext = Left(finame, InStrRev(finame, ".") - 1)
            swDraw.SaveAs3 "C:\TEMP\SWX\Zeichnungsableitung\" & fnamenoext & ".DWG", 0, 0

        End If

    End Sub



also kurz erklärt: in einem PART (bspw. "Schrankseite_links.sldprt") wird die Eigenschaft PartNo angelegt und bspw. mit 005 eingetragen
der Dateinamen meiner DWG-Datei lautet aktuell "Schrankseite_links.dwg" und sollte dann "005_Schrankseite_links.dwg" heißen...

[Diese Nachricht wurde von SNOOP_69 am 10. Jun. 2015 editiert.]

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2215
Registriert: 18.07.2012

-Solid Works 2019 SP3
-Pro Engineer WF 3

erstellt am: 10. Jun. 2015 13: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 SNOOP_69 10 Unities + Antwort hilfreich

Hallo SNOOP,

so sollte es eigentlich gehen, du kannst natürlich auch an stelle der CustomPropertyManager (IModelDocExtension) Methode auch die alte GetCustomInfoValue Method (IModelDoc2) verwenden.

Code:

Dim swApp As SldWorks.SldWorks
Dim swCurModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim fullname, finame, fnamenoext, foname As String
Dim swConfigMgr As SldWorks.ConfigurationManager
Dim swConfig As SldWorks.Configuration
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim ValOut As String
Dim ReesolvedValOut As String
Dim strPartNo As String

Sub main()

Set swApp = Application.SldWorks
   
Set swCurModel = swApp.ActiveDoc

Set swConfigMgr = swCurModel.ConfigurationManager

Set swConfig = swConfigMgr.ActiveConfiguration

Set swCustPropMgr = swConfig.CustomPropertyManager

swCustPropMgr.Get2 "PartNo", ValOut, ReesolvedValOut

strPartNo = ValOut

If swCurModel.GetPathName <> "" Then
Dim drawTemplate As String
drawTemplate = swApp.GetUserPreferenceStringValue(swUserPreferenceStringValue_e.swDefaultTemplateDrawing)
If drawTemplate = "" Then
MsgBox "Template is not found"
End
End If

Set swDraw = swApp.NewDocument("V:\4000_SolidWorks\4100_Vorlagen\4130_Zeichnung\Zeichnungsableitung_DWG.drwdot", 12, 10, 10)
swDraw.InsertModelInPredefinedView swCurModel.GetPathName()
fullname = swCurModel.GetPathName
finame = Right(fullname, Len(fullname) - InStrRev(fullname, "\"))
fnamenoext = Left(finame, InStrRev(finame, ".") - 1)
swDraw.SaveAs3 "C:\TEMP\SWX\Zeichnungsableitung\" & strPartNo & "_" & fnamenoext & ".DWG", 0, 0

End If

End Sub



Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

erstellt am: 10. Jun. 2015 14:45    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

Hi Bernd!

vielen Dank soweit!
Kann es sein, dass das Makro nur konfigurationsspezifische Eigenschaften erkennt? Bei denen funktioniert es...bei den benutzerdefinierten leider nicht?!

Gibt es da noch eine Möglichkeit diese (benutzerdefinierten Eigenschaften) mit einzubinden?

Gruß
Matthias

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: 3084
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016
ERP ProAlpha + CA-Link
Intel Core i7 860 16GB
Win7x64 QuadroFX1800
SpacePilot

erstellt am: 10. Jun. 2015 16:02    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 SNOOP_69 10 Unities + Antwort hilfreich

Die Möglichkeit gibt es und sie ist in der API- Hilfe auch beschrieben. Einfach mal kurz reingucken und Du bist ganz schnell fertig!   Ist einfach.
Wenn es bei Dir unerwarteterweise aber immer die konfigurationsspezifische Eigenschaft statt der benutzerdefinierten nimmt, könnte es daran liegen, daß es dieselbe Eigenschaft an beiden Stellen gibt und in diesem Zweifelsfall nimmt SolidWorks immer die konfigurationsspezifische (ist auch sinnvoll so). Also mußt Du den Wert in diesem Falle eben dorthin schreiben...

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

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

SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

erstellt am: 11. Jun. 2015 14:17    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


SWX-Forum-Makro_PartNo_01.jpg


SWX-Forum-Makro_PartNo_02.jpg

 
siehe Screenshot 1: welche Ursache hat diese Fehlermeldung?

siehe Screenshot 2: wäre das so richtig?

[Diese Nachricht wurde von SNOOP_69 am 11. Jun. 2015 editiert.]

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: 3084
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016
ERP ProAlpha + CA-Link
Intel Core i7 860 16GB
Win7x64 QuadroFX1800
SpacePilot

erstellt am: 11. Jun. 2015 14:31    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 SNOOP_69 10 Unities + Antwort hilfreich

Das mit der Klammer um die Parameter sieht richtig aus. Geht es dann?!
Ich würde es mit dem älteren GetCustomInfoValue machen; das geht gut.

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

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

SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

erstellt am: 11. Jun. 2015 16:12    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


SWX-Forum-Makro_PartNo_03.jpg

 
mit der Klammer funktioniert es...aber leider nun genau "andersherum"...jetzt werden die "benutzdef. PartNo" eingetragen, die "konfigspez. PartNo" aber leider nicht mehr...


siehe Screenshot: eigentlich sollte bei "_Teil3.DWG" noch die 002 davor stehen...

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: 3084
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016
ERP ProAlpha + CA-Link
Intel Core i7 860 16GB
Win7x64 QuadroFX1800
SpacePilot

erstellt am: 11. Jun. 2015 16:21    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 SNOOP_69 10 Unities + Antwort hilfreich

Probiere mal in der Zeile drüber am Ende statt ("") in Klammern den Namen der Konfiguration zu übergeben.
EDIT: Nein, das sieht nicht richtig aus.
Man muß sich den PropertyManager von der Konfiguration holen:

    Set config = swModel.GetActiveConfiguration
    Set cusPropMgr = config.CustomPropertyManager
   
Dann müßte man bei den richtigen Eigenschaften landen. Siehe API-Hilfe-Beispiel:
Get Custom Properties for Configuration Example (VBA)

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

[Diese Nachricht wurde von Lutz Federbusch am 11. Jun. 2015 editiert.]

[Diese Nachricht wurde von Lutz Federbusch am 11. Jun. 2015 editiert.]

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2215
Registriert: 18.07.2012

-Solid Works 2019 SP3
-Pro Engineer WF 3

erstellt am: 12. Jun. 2015 07: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 Nur für SNOOP_69 10 Unities + Antwort hilfreich

Hallo Matthias,

Zitat:
Kann es sein, dass das Makro nur konfigurationsspezifische Eigenschaften erkennt? Bei denen funktioniert es...bei den benutzerdefinierten leider nicht?!

Gibt es da noch eine Möglichkeit diese (benutzerdefinierten Eigenschaften) mit einzubinden?


Ich dachte das du immer die benutzerdefinierte Eigenschaft möchtest daher habe ich das so aufgebaut.

Das erste Makro von mir war ja auf konfigurationsspezifische Eigenschaften fixiert und das zweite auf benutzerdefinierte, daher müsstes du eigentlich nur beide kombinieren.

Zitat:

siehe Screenshot 1: welche Ursache hat diese Fehlermeldung?

siehe Screenshot 2: wäre das so richtig?


Ja das mit der Klammer ist eine Möglichkeit, du könntest aber auch einfach das "boolstatus =" davor weglassen.

Hier mal das angepasste Makro, es ist zu beachten wenn eine benutzerdef. Eigenschfat und eine konfigspez. Eigeschaft vorhanden sind wird der Wert aus der benutzerdef. Eigenschaft bevorzugt.

Code:

Dim swApp As SldWorks.SldWorks
Dim swCurModel As SldWorks.ModelDoc2
Dim swCurModelDocExt As SldWorks.ModelDocExtension
Dim swConfigMgr As SldWorks.ConfigurationManager
Dim swConfig As SldWorks.Configuration
Dim sConfig As String
Dim swDraw As SldWorks.DrawingDoc
Dim fullname, finame, fnamenoext, foname As String
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim ValOut As String
Dim ReesolvedValOut As String
Dim strPartNo As String


Sub main()

Set swApp = Application.SldWorks
 
Set swCurModel = swApp.ActiveDoc

Set swCurModelDocExt = swCurModel.Extension

Set swConfigMgr = swCurModel.ConfigurationManager

Set swConfig = swConfigMgr.ActiveConfiguration

sConfig = swConfig.Name

Set swCustPropMgr = swCurModelDocExt.CustomPropertyManager("")

swCustPropMgr.Get4 "PartNo", False, ValOut, ReesolvedValOut

If ValOut = "" Then

Set swCustPropMgr = swConfig.CustomPropertyManager

swCustPropMgr.Get4 "PartNo", False, ValOut, ReesolvedValOut

End If

If ValOut = "" Then

MsgBox "Bitte die Eigenschaft " & """PartNo""" & "ausfüllen", vbOKOnly + vbCritical, "fehlender Eintrag"
End
End If

strPartNo = ValOut


If swCurModel.GetPathName <> "" Then
Dim drawTemplate As String
drawTemplate = swApp.GetUserPreferenceStringValue(swUserPreferenceStringValue_e.swDefaultTemplateDrawing)
If drawTemplate = "" Then
MsgBox "Template is not found"
End
End If

Set swDraw = swApp.NewDocument("V:\4000_SolidWorks\4100_Vorlagen\4130_Zeichnung\Zeichnungsableitung_DWG.drwdot", 12, 10, 10)
swDraw.InsertModelInPredefinedView swCurModel.GetPathName()
fullname = swCurModel.GetPathName
finame = Right(fullname, Len(fullname) - InStrRev(fullname, "\"))
fnamenoext = Left(finame, InStrRev(finame, ".") - 1)
swDraw.SaveAs3 "C:\TEMP\SWX [SolidWorks] \Zeichnungsableitung\" & strPartNo & "_" & fnamenoext & ".DWG", 0, 0

End If

End Sub


Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

erstellt am: 12. Jun. 2015 08:12    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 Bernd,

vielen Dank für deine Mühen!
Dein Makro läuft zwar ohne Fehler durch, jedoch werden die DWG-Dateien nicht gespeichert...ich seh den "Erstellungs-Vorgang" kurz in SWX aufblitzen, speichern tut es die Zeichnung danach allerdings leider nicht?!

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1333
Registriert: 24.07.2002

AutoCAD ACA 2019
Solidworks 2019 Sp2
Enterprise PDM 2019 Sp2
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Dell Ultrasharp U2415
Dell M4800

erstellt am: 12. Jun. 2015 08: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 SNOOP_69 10 Unities + Antwort hilfreich

Hi Matthias,

Den Pfad:

Code:
swDraw.SaveAs3 "C:\TEMP\SWX\Zeichnungsableitung\" & strPartNo & "_" & fnamenoext & ".DWG", 0, 0

hast du aber angepasst und der ist auch vorhanden?!

Gruß, Carsten

[Diese Nachricht wurde von Carsten1210 am 12. Jun. 2015 editiert.]

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

SNOOP_69
Mitglied
Konstrukteur - Innenausbau


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

Beiträge: 508
Registriert: 25.01.2006

erstellt am: 12. Jun. 2015 08: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

oh Gott...peinlich...

beim copy+paste macht das Symbol bei SWX natürlich den Pfad kaputt... mit [SOLIDWORKS] im Pfad kann Windows natürlich nichts anfangen!

Läuft jetzt perfekt!
Danke an alle für die hervorragende Unterstützung!

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2215
Registriert: 18.07.2012

-Solid Works 2019 SP3
-Pro Engineer WF 3

erstellt am: 12. Jun. 2015 10:09    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 SNOOP_69 10 Unities + Antwort hilfreich

Hallo Matthias,

dann bitte den Thread auch als Erledigt markieren. 

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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)2019 CAD.de | Impressum | Datenschutz