Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Baugruppe speichern als Part: Alle Komponenten

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
  
SPS
Autor Thema:  API: Baugruppe speichern als Part: Alle Komponenten (1806 mal gelesen)
KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 15. Mai. 2015 10: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

Hi Programmierer,

ich hab da mal wieder ein kleines Problem:
Ich möchte/muss per vb.net Baugruppen als Part speichern.
Aktuell mache ich das mit Modeldoc2.Extension.SaveAs(). Probiert habe ich das auch mit den älteren Varianten ModelDoc2.SaveAs2(), ...SaveAs3() etc.
Alle haben das selbe Problem:
Ich kann nicht angeben, wie das Part gespeichert werden soll.
Beim manuellen Speichern als Part habe ich die Optionen "Äußere Flächen", "Externe Komponenten" und "Alle Komponenten" (das ist bei SWX 2012 oder 2013 hinzu gekommen).

Wenn ich die Baugruppe nun per API als Part speichere wird offenbar immer die Einstellung verwendet, die ich zuletzt beim manuellen Speichern benutzt habe.
(Blöderweise lässt sich auch fürs manuelle Speichern kein Default-Wert definieren, standardmäßig bekomme ich hier immer die Flächen, da könnte ich mich jedes Mal aufregen  Und das bei einem Solid-Modeller. Wir brauchen aber zu 99% immer die Einstellung "Alle Komponenten").

Die konkrete Frage ist nun: Wie kann ich beim Speichern einer Baugruppe als Part sicher einstellen, dass immer alle Komponenten gespeichert werden?  

[Edit]Es gibt den Registry-Schlüssel "HKCU\Software\SolidWorks\Solidworks 2013\Export Settings\Save Assembly As Part Options"
dieser nimmt den Wert 1..3 an, je nachdem welche Option zuletzt gewählt wurde. Der Schlüssel wird aber erst beim Beenden der SolidWorks-Sitzung geschrieben.
Wenn in einer Sitzung eine andere Option gewählt wurde, kann ich das während dieser Sitzung aus diesem Schlüssel nicht auslesen. Und trotzdem wird diese letzte Einstellung bei dem API-SaveAs verwendet.
[/Edit]


------------------
Klaus

www.al-ko.com | mein Gästebuch

[Diese Nachricht wurde von KMassler am 15. Mai. 2015 editiert.]

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

EC-Jens
Mitglied
Konstrukteur


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

Beiträge: 48
Registriert: 04.05.2010

Dell Xeon(R) CPU E-2286G W10 1909 64GB Ram NVIDIDA Quadro P2200
SWX 2019 SP5.0 SolidWorks Enterprise PDM

erstellt am: 18. Mai. 2015 07:42    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 KMassler 10 Unities + Antwort hilfreich

Hallo Klaus
bin kein Programmierer
habe dafür immer diesen Netzfund benutzt:

' Save Assy As Part (All Components).swp ---------------------------------07/27/11
'
'Description: Macro to save assembly to save as part (All Components).
'
'Precondition: Any active assembly with minimum one part.
'
'Postcondition: Assembly is saved as part.
'
' ------------------------------------------------------------------------------
' Written by: Deepak Gupta (http://gupta9665.wordpress.com/)
' ------------------------------------------------------------------------------

Dim swApp              As SldWorks.SldWorks
Dim swModel            As SldWorks.ModelDoc2
Dim swModelDocExt      As SldWorks.ModelDocExtension
Dim FilePath            As String
Dim PathSize            As Long
Dim PathNoExtension    As String
Dim NewFilePath        As String
Dim nErrors            As Long
Dim nWarnings          As Long

Sub main()

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

FilePath = swModel.GetPathName
PathSize = Strings.Len(FilePath)
PathNoExtension = Strings.Left(FilePath, PathSize - 6)
NewFilePath = PathNoExtension & "SLDPRT"

swApp.SetUserPreferenceIntegerValue swSaveAssemblyAsPartOptions, swSaveAsmAsPart_AllComponents

swModelDocExt.SaveAs NewFilePath, swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, nErrors, nWarnings


End Sub
'------------------

' Save Assy As Part (Exterior Components).swp ---------------------------------07/27/11
'
'Description: Macro to save assembly to save as part (Exterior Components).
'
'Precondition: Any active assembly with minimum one part.
'
'Postcondition: Assembly is saved as part.
'
' ------------------------------------------------------------------------------
' Written by: Deepak Gupta (http://gupta9665.wordpress.com/)
' ------------------------------------------------------------------------------

Dim swApp              As SldWorks.SldWorks
Dim swModel            As SldWorks.ModelDoc2
Dim swModelDocExt      As SldWorks.ModelDocExtension
Dim FilePath            As String
Dim PathSize            As Long
Dim PathNoExtension    As String
Dim NewFilePath        As String
Dim nErrors            As Long
Dim nWarnings          As Long

Sub main()

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

FilePath = swModel.GetPathName
PathSize = Strings.Len(FilePath)
PathNoExtension = Strings.Left(FilePath, PathSize - 6)
NewFilePath = PathNoExtension & "SLDPRT"

swApp.SetUserPreferenceIntegerValue swSaveAssemblyAsPartOptions, swSaveAsmAsPart_ExteriorComponents


swModelDocExt.SaveAs NewFilePath, swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, nErrors, nWarnings


End Sub
'------------------

und geht bei mir in der 13

und nur Flächen finde ich sinnfrei

Jens

------------------
-----------------------------
der frühe Vogel kann mich mal

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 18. Mai. 2015 08: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

Zitat:
Original erstellt von EC-Jens:
...
'swApp.SetUserPreferenceIntegerValue swSaveAssemblyAsPartOptions, swSaveAsmAsPart_AllComponents

Herzlichen Dank! Das ist es. 
Diese Methode hatte ich auch schon das eine oder andere Mal in Gebrauch, aber manchmal steht man einfach auf dem Schlauch!

------------------
Klaus

www.al-ko.com | mein Gästebuch

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