Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VBA Makro: STEP eines abgewickelten Kantteils/Baugruppe

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
  
PLM TechnologieForum Essen
Autor Thema:  VBA Makro: STEP eines abgewickelten Kantteils/Baugruppe (301 / mal gelesen)
GrischaBr
Mitglied
Maschinenbautechniker

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

Beiträge: 6
Registriert: 07.02.2024

SW2012
SW2020 SP1.0
SW2022 SP5.0

erstellt am: 07. Feb. 2024 11:37    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 liebe Leute,

habe das Forum ein wenig nach dem Thema durchsucht, aber finde nur die andere Vorgehensrichtung.

Mich würde interessieren, ob es VBA Funktionen gibt um alle Teile einer Baugruppe die nicht bereits abgewickelt sind, abzuwickeln und daraus einzelne STEP-Dateien zu generieren.
Alle Teile die nur ein flaches Blech sind ebenfalls als STEP exportieren. Danach kann der ganze kladaradatsch wieder geschlossen werden.

Grund hierfür ist, dass die Teile per TailorSteel bestellt werden sollen, aber eben nicht gekantet. (Die lieben Damen und Herren von TailorSteel bieten es leider nicht an nur die Bleche zu schneiden, ohne zu kanten) Und Gravuren können per STEP direkt integriert werden ohne hier mit der DXF und Layern rumzufuchsen.

Ich bin kein VBA Typ aber hab mich bis jetzt immer irgendwie durchgeschlagen anhand von halben Templates. Finde aber auch in der VBA Anleitung nicht wirklich Funktionen die danach aussehen.

SW: Solidworks 2020 SP1.0 (wird später eingesetzt: SW2022 SP5.0)

Falls jemand bereits ne Lösung hat, immer her damit.

Danke schon einmal für alle Infos,
Grüße 

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

R3vo
Mitglied
staatl. gepr. Techniker, Konstrukteur


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

Beiträge: 107
Registriert: 03.11.2021

Programme:
CAD: SolidWorks 2021 SP5.1
PDM: SpeedyPDM 7.5
------------------------
CPU: i7 10700
GPU: Nvidia Quadro RTX4000
RAM: 64 Gbyte
Datenträger: SSD

erstellt am: 07. Feb. 2024 14:52    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 GrischaBr 10 Unities + Antwort hilfreich

Hi,

ohne VBA-Erfahrung sowas zu schreiben ist wahrscheinlich zu zeitaufwendig. Aber das klingt nach einem Job für die JobBox von DPS. Einfach mal die große Suchmaschine anwerfen.

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

GrischaBr
Mitglied
Maschinenbautechniker

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

Beiträge: 6
Registriert: 07.02.2024

SW2012
SW2020 SP1.0
SW2022 SP5.0

erstellt am: 07. Feb. 2024 16: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

Hi,

naja ich hab schon das ein oder andere gemacht.
Aber Erfahrung würd ichs tatsächlich nicht nennen, joa.

Sowas wie hier würde mir schon reichen, wenn es noch eine Funktion gibt die das Blech vorher abwickelt.

Code:

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Dim Step As Long
Dim saveFileName As String
Sub main()
Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager

'Abfrage ob Name vergeben wurde
If (swApp.ActiveDoc.GetPathName = "") Then
    MsgBox ("Bitte zuerst Teil speichern!")
    Exit Sub
End If

'Abfrage ob es eine Zeichnung ist
If Part.GetType = SwConst.swDocumentTypes_e.swDocDRAWING Then
    MsgBox ("Dieses Makro kann nicht für Zeichnungen ausgeführt werden")
    Exit Sub
End If

Step = swApp.SetUserPreferenceIntegerValue(swStepAP, 214)

'Ansicht Isometrisch (zoomt automatisch auf Fenstergröße)
    Part.ShowNamedView2 "*Isometrisch", 7

'Als STEP speichern
    FilePath = Part.GetPathName
    FilePath = Left(FilePath, (Len(FilePath) - 7))
    NewFilePath = FilePath & ".STEP"
    longstatus = Part.SaveAs3(NewFilePath, 0, 0)
    MsgBox ("Gespeichert unter " & NewFilePath)

End Sub


Wäre nett wenn jemand was weiss.
Grüße.

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 08. Feb. 2024 09:41    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 GrischaBr 10 Unities + Antwort hilfreich

Moin,

sind denn die Blechteile auch alle auf Knopfdruck abwickelbar?
bei uns ist die Abwicklung in der Regel in einer eigenen Konfiguration
(oft diese abhängigen xxxSM_FLAT_PATTERN, aber nicht immer)
und dann gibt es:
- Blechteile wo die Funktion Abwickeln genutzt wird.
- Blechteile wo die Abwicklung mit "Abbiegen" erzeugt ist (wurde früher von SWX z.T. sogar so gemacht, sogar mit Einfügemodus)
- Blechteile wo gar kein "Blech" drin ist (z.B. manuell als Konfiguration erstellte "Abwicklung"

ich empfehle auf jeden Fall "scharf anschauen" (z.B. auch ob die Optionen passend gesetzt sind ...)

Gruß, Christian

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

GrischaBr
Mitglied
Maschinenbautechniker

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

Beiträge: 6
Registriert: 07.02.2024

SW2012
SW2020 SP1.0
SW2022 SP5.0

erstellt am: 08. Feb. 2024 11:43    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


Screenshot2024-02-08095107.png

 
Hallo,

ja ist als "natives" Blech in Solidworks, eben per abwickeln (siehe Bild) auch so machbar.
Eine Flat Pattern Konfiguration hat dieses Teil jetzt nicht.
Erst sobald eine Zeichnung mit Abwicklung erstellt wird, wird eine StandardSM-FLAT-PATTERN erzeugt.

Im Grunde genommen will ich das Blech nur per VBA abwickeln, wie als ob ich den Knopf drücken würde.

Grüße 

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

R3vo
Mitglied
staatl. gepr. Techniker, Konstrukteur


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

Beiträge: 107
Registriert: 03.11.2021

Programme:
CAD: SolidWorks 2021 SP5.1
PDM: SpeedyPDM 7.5
------------------------
CPU: i7 10700
GPU: Nvidia Quadro RTX4000
RAM: 64 Gbyte
Datenträger: SSD

erstellt am: 08. Feb. 2024 12:33    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 GrischaBr 10 Unities + Antwort hilfreich

Anscheinend muss du das Abwicklungs-Feature auswählen und dann die Unterdrückung aufheben mit

Code:
IModelDoc2.EditSuppress2

Das Abwicklungsfeature würde ich auswählen indem ich eine Schleife über alle Features laufen lassen und prüfe wann es ein Abwicklungsfeature ist. Vielleicht gibt es noch bessere Methoden aber auf die schnelle finde ich nichts.

[Diese Nachricht wurde von R3vo am 08. Feb. 2024 editiert.]

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

GrischaBr
Mitglied
Maschinenbautechniker

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

Beiträge: 6
Registriert: 07.02.2024

SW2012
SW2020 SP1.0
SW2022 SP5.0

erstellt am: 08. Feb. 2024 13:33    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 nochmal,

bin jetzt erst auf die Idee gekommen, mal den recorder zu nutzen und hab folgendes dann natürlich schnell gefunden:

Code:

Part.SetBendState(2)

Ich schau mal ob ich das auch auf die Baugruppe anwenden kann.
Aber falls mir das jemand abnehmen kann, hätte ich nichts dagegen 

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

R3vo
Mitglied
staatl. gepr. Techniker, Konstrukteur


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

Beiträge: 107
Registriert: 03.11.2021

Programme:
CAD: SolidWorks 2021 SP5.1
PDM: SpeedyPDM 7.5
------------------------
CPU: i7 10700
GPU: Nvidia Quadro RTX4000
RAM: 64 Gbyte
Datenträger: SSD

erstellt am: 08. Feb. 2024 15:57    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 GrischaBr 10 Unities + Antwort hilfreich

Du wirst erst durch alle Komponenten der Baugruppe gehen müssen, dann durch alle Features der Komponente um zu prüfen ob es eine Abwicklung gibt, dann Abwickeln und schlussendlich die Step erstellen.

setBendState is glaube ich eine alte Methode. Keine Ahnung ob die noch so zuverlässig funktioniert.

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

GrischaBr
Mitglied
Maschinenbautechniker

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

Beiträge: 6
Registriert: 07.02.2024

SW2012
SW2020 SP1.0
SW2022 SP5.0

erstellt am: 09. Feb. 2024 09:03    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

Moin,

da ich die Funktionen dafür nicht kenne und in Kombination mit FOR-Schleifen bei meinen kleinen Baugruppen das übersteigen würde bleibe ich bei der jetzigen Lösung.

Sollte jemand n kurzes Template haben, wie ich durch die einzelnen Parts in der Baugruppe gehe und diese als active document schalte, gerne her damit.

Ja die SetBendState geht auch nicht wirklich musste ich dann feststellen.

Habe es folgendermaßen gemacht:

Code:

    boolstatus = Part.Extension.SelectByID2("Abwicklung1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
    Part.EditUnsuppress2

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