Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Größe von Abwicklung und Blechstärke auslesen (Makro)

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
  
On-Demand-Webinare zu SOLIDWORKS Simulation (SOLIDWORKS Simulation)
Autor Thema:  Größe von Abwicklung und Blechstärke auslesen (Makro) (1344 / mal gelesen)
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: 26. Nov. 2021 14: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

Hallo Zusammen,
ich bin seit einigen Tagen dabei ein Makro zu schreiben welches die Bauteil/Baugruppengröße automatisch ausliest und über eine Eigenschaft an die Zeichnung übergibt. Funktioniert soweit alles einwandfrei, außer das ich noch keinen Weg gefunden habe das Ganze auch für Blechteile umzusetzen.

Bei Baugruppen oder "normalen" Einzelteilen bediene ich mich des Begrenzungsrahmens von SWX was auch gut funktioniert. Bei Blechteilen kann ich diesen aber nicht verwenden, da mich die Größe der Abwicklung interessiert und nicht des gekanteten Teils.

Meine Idee war nun entweder, die Blechstärke aus dem Blech-Feature auszulesen und die Größe der Abwicklung über die "Rahmen1" Skizze zu holen oder alternativ könnte ich auch versuchen die Eigenschaften aus dem Zuschnitt auszulesen z.B.: "SW-Rahmenlänge@@@Sheet<1>@Blech.SLDPRT".

Leider hab ich für beides noch keinen vernüftigen Weg gefunden.

Kleine Info am Rand. In unserer Firma gibt es immer nur einen Blechkörper pro sldprt.

Vielen Dank für eure Hilfe.

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

goofy_ac
Mitglied
Produktentwickler


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

Beiträge: 1130
Registriert: 20.06.2006

Dell Precision 7740; i7/9850@2,6GHz
Quadro RTX5000; 32GB; Win10x64 prof.
SWX2022 SP5; dbWorks R20

erstellt am: 26. Nov. 2021 15:38    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 R3vo 10 Unities + Antwort hilfreich

hi R3vo

ich bin in Makros nicht unterwegs, aber: Wenn Du ins Blechteil gehst, die Abwicklung startest, bekommst Du einen umschreibenden Rahmen als minimale Zuschnittgröße angezeigt. Dafür müsssen die Skizzen eingeblendet sein - sollte also möglich sein - ich kann Dir nur nicht sagen, hinter welchen Variablen / Parametern sich diese Daten verstecken...

Viele Grüße - Axel

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: 26. Nov. 2021 17: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

Das ist richtig. Leider finde ich keinen Weg auf die Skizze zuzugreifen. Ich werde jetzt vorläufig mit den Eigenschaften der Zuschnittsliste arbeiten.

Code:
        If (flatPatternFolder.GetFlatPatternCount = 1) Then
            ' For SWX to evaluate the strings they need to be wrapped in two quotes e.g. Chr(34)
            propertyLengthSheetConfigName = Chr(34) & "SW-Rahmenlänge@@@Sheet<1>@Blech.SLDPRT" & Chr(34)
            propertyWidthSheetConfigName = Chr(34) & "SW-Rahmenbreite@@@Sheet<1>@Blech.SLDPRT" & Chr(34)
            propertyThicknessSheetConfigName = Chr(34) & "SW-Blechdicke@@@Sheet<1>@Blech.SLDPRT" & Chr(34)
           
            ' Add custom property defined in propertyDimensionConfigName and propertyLengthConfigName
            status = swPropManager.Add3(propertyDimensionConfigName, swCustomInfoText, propertyThicknessSheetConfigName & "x" & propertyWidthSheetConfigName & "x" & propertyLengthSheetConfigName, swCustomPropertyDeleteAndAdd)
            status = swPropManager.Add3(propertyLengthConfigName, swCustomInfoText, propertyThicknessSheetConfigName, swCustomPropertyDeleteAndAdd)
            Exit Sub
        End If

Die trage ich dann als Bauteileigenschaften ein. Nicht wirklich flexible aber es funktioniert erstmal.

[Diese Nachricht wurde von R3vo am 26. Nov. 2021 editiert.]

[Diese Nachricht wurde von R3vo am 26. Nov. 2021 editiert.]

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

tjaard
Mitglied



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

Beiträge: 26
Registriert: 14.06.2021

erstellt am: 26. Nov. 2021 19:46    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 R3vo 10 Unities + Antwort hilfreich

Moin R3vo,

mir fällt da noch ganz spontan - sogar ohne Makro - folgender Weg ein:

Rechtsklick in die Zeichnungsansicht -> Beschriftung -> Zuschnittslisteneigenschaften

Dort wird dann unter anderem auch die Blechstärke, Rahmenlänge und -breite in einem Bezugshinweis angegeben.

So kannst Du auf die Zuschnittslisteneigenschaften zugreifen, ohne dass Du diese Informationen zunächst in die Dateieigenschaften trägst.

Ich weiß natürlich nicht, inwiefern ihr das Ganze automatisieren wollt oder Ähnliches - das aber nur als Info, falls Du die Funktion noch nicht kennst. 

Schönen Abend noch!

------------------
Mit besten Grüßen aus Ostfriesland,
Tjaard

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: 27. Nov. 2021 09: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

Danke für die Info. Ich greife schon auf die Informationen zu, siehe Code im Post oben.

Ich werde das ganze erstmal so belassen und schauen ob es zu Problemen führt.

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: 29. Nov. 2021 08:54    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 R3vo 10 Unities + Antwort hilfreich

Schau mal, ob dir das was hilft:

Gruß, Jens

Code:
Sub main()

Dim swApp          As SldWorks.SldWorks

Dim swDrawing      As ModelDoc2
Dim swPart          As ModelDoc2
Dim swCustPropMgr  As CustomPropertyManager
Dim Feature        As Feature

Dim swView              As View

Dim str_RefModelName    As String

Dim str_Desc            As String
Dim str_Value          As String
Dim str_ResolvedValue  As String
Dim str_Rahmenlänge    As String
Dim str_Rahmenbreite    As String

Dim arr_BlechProps(3)    As String

    Set swApp = Application.SldWorks
    Set swDrawing = swApp.ActiveDoc
    Set swView = swDrawing.GetFirstView
    Set swView = swView.GetNextView
   
    'Modell holen und Blecheigenschaften schreiben
    str_RefModelName = swView.GetReferencedModelName
   
    Set swPart = swApp.OpenDoc(str_RefModelName, swPart.GetType)
    swApp.ActivateDoc swPart.GetTitle
   
    Set swCustPropMgr = swPart.Extension.CustomPropertyManager(Empty)
   
    'Eigenschaftsarray füllen
    arr_BlechProps(0) = "Biegeradius"
    arr_BlechProps(1) = "Blechdicke"
    arr_BlechProps(2) = "Biegezugabe"
    arr_BlechProps(3) = "Biegungen"
   
    'Zuschnittsliste suchen
    Set Feature = swPart.FirstFeature
   
    Do While Not Feature Is Nothing
        If Feature.GetTypeName() = "CutListFolder" Then    'Elemente vom Typ Zuschnittliste
If Feature.CustomPropertyManager.GetType2("Rahmenbreite") > 0 Then        'Benutzerdefinierte Eigenschaft Rahmenbreite ist vorhanden = Blechelement
For i = 0 To UBound(arr_BlechProps)
Feature.CustomPropertyManager.Get2(arr_BlechProps(i), str_Value, str_ResolvedValue)

swCustPropMgr.Delete arr_BlechProps(i)
swPart.AddCustomInfo2 arr_BlechProps(i), swCustomInfoText, str_Value
Next i

'Zuschnittsmaße
Feature.CustomPropertyManager.Get2("Rahmenlänge", str_Rahmenlänge, str_ResolvedValue)
Feature.CustomPropertyManager.Get2("Rahmenbreite", str_Rahmenbreite, str_ResolvedValue)

swCustPropMgr.Delete "Zuschnittsmaße"
swPart.AddCustomInfo2 "Zuschnittsmaße", swCustomInfoText, str_Rahmenlänge & " x " & str_Rahmenbreite

End If
        End If
       
        Set Feature = Feature.GetNextFeature
    Loop
 
    'Speichern
    swPart.Save
   
    swApp.ActivateDoc swDrawing.GetTitle

End Sub


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: 29. Nov. 2021 16:23    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

Das sieht sehr gut aus. Schön nochmal einen anderen Ansatz zu sehen. Werde mich beizeiten näher damit auseinandersetzen.

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

Locke79
Mitglied
Arbeitsvorbereitung


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

Beiträge: 12
Registriert: 08.03.2022

erstellt am: 18. Mrz. 2022 13:27    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 R3vo 10 Unities + Antwort hilfreich

Hallo Jens,

ich wollte dieses Makro nun auch mal ausprobieren, aber bei mir zeigt es immer Fehler an in diesem Bereich:

Feature.CustomPropertyManager.Get2

Ich kenne mich halt echt wenig aus mit VBA was muss man da ändern?

Grüße Locke

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: 18. Mrz. 2022 18: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

Zitat:
Original erstellt von Locke79:
Hallo Jens,

ich wollte dieses Makro nun auch mal ausprobieren, aber bei mir zeigt es immer Fehler an in diesem Bereich:

Feature.CustomPropertyManager.Get2

Ich kenne mich halt echt wenig aus mit VBA was muss man da ändern?

Grüße Locke
   


Code:
Sub main()
    Dim swApp As SldWorks.SldWorks
   
    Dim swDrawing As ModelDoc2
    Dim swPart As ModelDoc2
    Dim swCustPropMgr As CustomPropertyManager
    Dim Feature As Feature
   
    Dim str_Value As String
    Dim str_ResolvedValue As String
    Dim str_Rahmenlänge As String
    Dim str_Rahmenbreite As String
    Dim status As Boolean
    Dim status_int As Integer
    Dim arr_BlechProps(3) As String

    Set swApp = Application.SldWorks
    Set swPart = swApp.ActiveDoc
 
    Set swCustPropMgr = swPart.Extension.CustomPropertyManager(Empty)
 
    'Eigenschaftsarray füllen
    arr_BlechProps(0) = "Biegeradius"
    arr_BlechProps(1) = "Blechdicke"
    arr_BlechProps(2) = "Biegezugabe"
    arr_BlechProps(3) = "Biegungen"
 
    'Zuschnittsliste suchen
    Set Feature = swPart.FirstFeature
 
    Do While Not Feature Is Nothing
        If Feature.GetTypeName() = "CutListFolder" And Feature.CustomPropertyManager.GetType2("Rahmenbreite") > 0 Then    'Elemente vom Typ Zuschnittliste
            For i = 0 To UBound(arr_BlechProps)
                status_int = Feature.CustomPropertyManager.Get6(arr_BlechProps(i), False, str_Value, str_ResolvedValue, status, False)
                swCustPropMgr.Delete arr_BlechProps(i)
                swPart.AddCustomInfo2 arr_BlechProps(i), swCustomInfoText, str_Value
            Next i
       
            'Zuschnittsmaße
            status_int = Feature.CustomPropertyManager.Get6("Rahmenlänge", False, str_Rahmenlänge, str_ResolvedValue, status, False)
            status_int = Feature.CustomPropertyManager.Get6("Rahmenbreite", False, str_Rahmenbreite, str_ResolvedValue, status, False)
       
            swCustPropMgr.Delete "Abmessung"
            swPart.AddCustomInfo2 "Abmessung", swCustomInfoText, str_Rahmenbreite & " x " & str_Rahmenlänge
        End If
        Set Feature = Feature.GetNextFeature
    Loop
End Sub


Versuchs mal hiermit. Voraussetzung ist ein geöffnetes und aktives Blechbauteil. Die Werte siehst du dann im Eigenschaftenfenster.

[Diese Nachricht wurde von R3vo am 18. Mrz. 2022 editiert.]

[Diese Nachricht wurde von R3vo am 18. Mrz. 2022 editiert.]

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

Locke79
Mitglied
Arbeitsvorbereitung


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

Beiträge: 12
Registriert: 08.03.2022

erstellt am: 19. Mrz. 2022 08:14    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 R3vo 10 Unities + Antwort hilfreich

Perfekt funktioniert einwandfrei(!)

           

Danke Danke

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

deckelmaho
Mitglied
Konstrukteur


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

Beiträge: 239
Registriert: 03.03.2020

SolidWorks 2023 SP5
Windows 10 64bit
Office 2019

erstellt am: 23. Mrz. 2022 10: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 Nur für R3vo 10 Unities + Antwort hilfreich

Hi Locke,

https://swxtools.de/tutorials/#dca521359514bdd12

Wenn du möchtest das sich die Maße automatisch aktualisieren wenn sich deine Abwicklung ändert, dann kannst du auch den SWXHelper verwenden.

Gruß Kevin

------------------
HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS
KONTAKT | support@swxtools.de
FACEBOOK | facebook.com/SWXHelper
TWITTER | twitter.com/SWXTools

[Diese Nachricht wurde von deckelmaho am 23. Mrz. 2022 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