Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Umbenennen von Volumenkörpern

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
Autor Thema:  Umbenennen von Volumenkörpern (1937 mal gelesen)
jositz
Mitglied
Konstrukteur


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

Beiträge: 31
Registriert: 04.12.2003

Schneider Digital
Intel Xeon CPU E5-1620v3
3,50GHz 32,00GB RAM
Windows 7 Professional x64 SP1
AMD FirePro W7100
Solid Works 2016 x64 SP 5.0

erstellt am: 24. Aug. 2007 08:44    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,

wir müssen immmer wieder Baugruppen zu Simulationszwecken an andere Firmen weiterleiten, dabei wollen wir natürlich möglichst wenig Informationen preisgeben und lediglich die genaue Außenkontur der Baugruppe liefern.
Momentan gehe ich so vor, dass ich in der Baugruppe das "Innenleben" ausblende und dann daraus einen Part erzeuge.
Soweit so gut, aber die einzelnen Volumenkörper des so erzeugten Parts, heißen in diesem Part jeweils so wie das entsprechende Bauteil aus der ursprünglichen Baugruppe. d.h. es kann auf Grund der Bezeichnung der Volumenkörper noch nachvollzogen werden welche Getriebe, Motoren usw. von uns eingesetzt werden.
Nun kann ich natürlich diese Volumenkörper von Hand umbenennen, was aber teilweise sehr aufwendig ist.

Damit zu meiner Frage:

Gibt es eine Möglichkeit (Makro) alle Volumenkörper umzubenennen, oder einfach nur durch zu numerieren?
Oder wo wird den gesteuert wie die einzelnen Volumenkörpers eines Parts heißen? Denn beim Import von step, xt oder sonstigen neutralen Formaten, haben die Volumenkörper immer wieder unterschiedliche Namen, die sich aus einem Namen und einer fortlaufenden Nummer bilden zB. Importiert1..., None1...,Part1...., Product Name1...

Wo wird das in SolidWorks gesteuert, bzw, wie kann ich das beeinflußen?

Für Eure Hilfe wäre ich Euch sehr dankbar.

------------------
Dell Precision PWS 380 3,40GHz  2,00GB RAM
Windows XP Professional SP2
NVIDIA Quadro FX 3450/4000 SDI
Solid Works 2005 SP 5.1
Design Space 9.0

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

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

erstellt am: 24. Aug. 2007 10:08    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 jositz 10 Unities + Antwort hilfreich

Speicher doch Deine Baugruppe als Teil und vereinige darin alle Körper die gehen (bekommen dann einen neuen Namen), verkleistere alles, was zu detailliert ist durch Flutungsfeatures und am Ende exportierst Du das Ganze in einem neutralen Format.

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

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

sonti
Mitglied
dipl. Masch.-Ing.


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

Beiträge: 1175
Registriert: 26.01.2007

Solid Works 2017 SP5
Inventor 2015
Windows 10
SWX (mein Liebling)

erstellt am: 27. Aug. 2007 09: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 jositz 10 Unities + Antwort hilfreich

Hallo

Wie wärs alles im PRT-Format weiterleiten, da kannst du auswählen wieviel du weitergeben willst.

Gruss Sonti

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: 27. Aug. 2007 11:29    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 jositz 10 Unities + Antwort hilfreich


13436_speichern-als-part-umbennen-vorher.gif


13436_speichern-als-part-umbennen-nachher.gif

 
Hallo Jositz,

ich hab dir mal ein Makro gebastelt, das die Körper und die Featurenamen der importierten Körper umbenennt und einfach durchnummeriert. Bitte wirklich nur bei Teilen anwenden, die du durch Abspeichern einer Baugruppe als Teil bekommen hast, sonst ist das nicht wirklich sinnvoll  

Code:
' **********************************************************************
' * Makro benennt alle Körper eines Einzelteils um, dabei wird einfach
' * eine laufende Nummer hochgezählt. Anschließend werden noch alle
' * Feature vom Typ Importiert umbenannt, so dass alle "Spuren" der
' * Benennung von Baugruppen, die als Teil egspeichert wurden, weg sind.
' *
' * 27.08.2007 Stefan Berlitz (stefan.berlitz@solidworks.cad.de)
' * http://solidworks.cad.de
' * http://swtools.cad.de
' *
' **********************************************************************

Dim swApp As Object
Dim ModelDoc As Object
Dim vBodies As Variant
Dim vBody As Variant
Dim Body As Object

Dim Feature As Object
Dim FeatCount As Long

Dim counter As Long
Dim i As Long

Dim BodyType(5) As String

' Konstante aus swconst.bas
Public Const swDocPART = 1
Public Const swAllBodies = -1
Public Const swSolidBody = 0
Public Const swSheetBody = 1
Public Const swWireBody = 2
Public Const swMinimumBody = 3
Public Const swGeneralBody = 4
Public Const swEmptyBody = 5

Public Const swTnBaseBody = "BaseBody"
Public Const swTnRefSurface = "RefSurface"

Sub main()

    ' an SolidWorks anhängen
    Set swApp = CreateObject("SldWorks.Application")

    ' prüfen, ob überhaupt ein Dokument offen ist ...
    Set ModelDoc = swApp.ActiveDoc
    If ModelDoc Is Nothing Then
        MsgBox "Kein Dokument offen"
        Exit Sub
    End If
    ' ... und ob das auch ein Einzelteil ist
    If (ModelDoc.GetType <> swDocPART) Then
        MsgBox "Nur für Einzelteile sinnvoll"
        Exit Sub
    End If

    ' einen Loop über alle Körper, diese dann einfach nacheinander
    ' hochzählen, als Grundname wird der Körpertyp angegeben
    counter = 0
   
    BodyType(swSolidBody) = "Volumenkörper"
    BodyType(swSheetBody) = "Oberflächenkörper"
    BodyType(swWireBody) = "Drahtkörper"
    BodyType(swMinimumBody) = "Minimumkörper"
    BodyType(swGeneralBody) = "AllgemeinerKörper"
    BodyType(swEmptyBody) = "Leerkörper"
   
    ' dann einen Loop über alle Körper und die umbenennen
    vBodies = ModelDoc.GetBodies2(swAllBodies, False)
    For Each vBody In vBodies
        counter = counter + 1
        Set Body = vBody
        Body.Name = BodyType(Body.GetType) & counter
    Next
   
    ' und dasseleb Spielchen für die Features
    Set Feature = ModelDoc.FirstFeature
    While Not Feature Is Nothing
   
        ' Debug.Print Feature.Name & " Typ:" & Feature.GetTypeName
       
        ' wenn es ein importierter Klotz oder Fläche ist umbenennen
        Select Case Feature.GetTypeName
        ' importierte Körper
        Case swTnBaseBody
            Feature.Name = swTnBaseBody & counter
        ' externe Flächen importiert
        Case swTnRefSurface
            Feature.Name = swTnRefSurface & counter
        End Select
        ' Zähler hochsetzen
        counter = counter + 1
       
       
        ' und auf zum nächsten Feature
        Set Feature = Feature.GetNextFeature
    Wend

    ' und regenerieren, damit alles richtig angezeigt wird
    ModelDoc.EditRebuild

End Sub


Ciao,
Stefan

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

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: 3
Registriert: 08.03.2022

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

Hallo,
der Beitrag ist ja schon etwas älter, hoffe mir kann dazu trotzdem jemand noch Hilfe geben.
Das Makro ist für mich schon fast perfekt.
Ich würde jetzt allerdings das gern so haben das vorher eine Abfrage kommt wie der "Grundname" sein soll das man dort was beliebiges in eine Box eintragen kann und er das dann übernimmt, ist das möglich?
Für eure Unterstützung wäre ich sehr dankbar.

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

R3vo
Mitglied
staatl. geprüft. 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: 36
Registriert: 03.11.2021

Programme:
CAD: SolidWorks 2019 Neuste SP / SolidWorks 2021 Neuste SP
PDM: SpeedyPDM 7.4
System:
CPU: i7 10700
Grafikarte: Nvidia Quadro RTX4000
RAM: 64 Gbyte
Datenträger: SSD

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

Vielleicht so? Der Code könnte insgesamt wahrscheinlich noch etwas effizienter sein, aber dafür ist es heute Abend schon zu spät.

Code:
Dim swApp As Object
Dim ModelDoc As Object
Dim vBodies As Variant
Dim vBody As Variant
Dim Body As Object

Dim Feature As Object
Dim FeatCount As Long

Dim counter As Long
Dim i As Long

Dim BodyType(5) As String

' Konstante aus swconst.bas
Public Const swDocPART = 1
Public Const swAllBodies = -1
Public Const swSolidBody = 0
Public Const swSheetBody = 1
Public Const swWireBody = 2
Public Const swMinimumBody = 3
Public Const swGeneralBody = 4
Public Const swEmptyBody = 5

Public Const swTnBaseBody = "BaseBody"
Public Const swTnRefSurface = "RefSurface"

Dim prefixBody As String
Dim prefixSurface As String


Sub main()

    prefixBody = InputBox("Geben Sie den Prefix ein der für die Umbenennung von Volumenkörpern verwendet werden soll.", "Prefix eingeben", "Volumenkörper_")
    prefixSurface = InputBox("Geben Sie den Prefix ein der für die Umbenennung von Flächen verwendet werden soll.", "Prefix eingeben", "Fläche_")

    ' an SolidWorks anhängen
    Set swApp = CreateObject("SldWorks.Application")

    ' prüfen, ob überhaupt ein Dokument offen ist ...
    Set ModelDoc = swApp.ActiveDoc
    If ModelDoc Is Nothing Then
        MsgBox "Kein Dokument offen"
        Exit Sub
    End If
    ' ... und ob das auch ein Einzelteil ist
    If (ModelDoc.GetType <> swDocPART) Then
        MsgBox "Nur für Einzelteile sinnvoll"
        Exit Sub
    End If

    ' einen Loop über alle Körper, diese dann einfach nacheinander
    ' hochzählen, als Grundname wird der Körpertyp angegeben
    counter = 0
  
    ' dann einen Loop über alle Körper und die umbenennen
    vBodies = ModelDoc.GetBodies2(swAllBodies, False)
    For Each vBody In vBodies
        counter = counter + 1
        Set Body = vBody
        Body.Name = prefixBody & counter
    Next
  
    ' und dasselbe Spielchen für die Features
    Set Feature = ModelDoc.FirstFeature
    While Not Feature Is Nothing
  
        ' Debug.Print Feature.Name & " Typ:" & Feature.GetTypeName
      
        ' wenn es ein importierter Klotz oder Fläche ist umbenennen
        Select Case Feature.GetTypeName
        ' importierte Körper
        Case swTnBaseBody
            Feature.Name = prefixBody & counter
        ' externe Flächen importiert
        Case swTnRefSurface
            Feature.Name = prefixSurface & counter
        End Select
        ' Zähler hochsetzen
        counter = counter + 1
      
      
        ' und auf zum nächsten Feature
        Set Feature = Feature.GetNextFeature
    Wend

    ' und regenerieren, damit alles richtig angezeigt wird
    ModelDoc.EditRebuild

End Sub


[Diese Nachricht wurde von R3vo am 08. 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: 3
Registriert: 08.03.2022

erstellt am: 09. Mrz. 2022 08:11    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 jositz 10 Unities + Antwort hilfreich

Supi, vielen vielen Dank genau so passt es.
Danke Danke

Grüße Locke

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