Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Solid Works VB.net Name des Features einer Fläche ermitteln

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
  
Was hat Simulation mit erfolgreicher Produktentwicklung zu tun?
Autor Thema:  Solid Works VB.net Name des Features einer Fläche ermitteln (1449 mal gelesen)
Hellmi
Mitglied
Student

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

Beiträge: 3
Registriert: 18.09.2012

Solid Works 2008
Inventor 2010
Ansys 13.0 Education
Visual Basic Express 2010

erstellt am: 19. Sep. 2012 10: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

(Danke für den Hinweis, hab das mal in das SW-Forum vorschoben!)
Hallo,

ich schriebe an einem Progrämmchen um Flächen oder Volumenkörper von Solid Works in Ansys zu importieren.
Das Programm schreibt ein Importskript. Ich erhoffe damit bessere Informationen zu übertragen statt eine
dumme IGS Datei zu importieren. Vorab importiere ich eine IGS als reine Flächen ins Solid Works(also Part)!
Im Feature Baum tauchen dann nur z.b. "Oberfläche-Importiert01,Oberfläche-Importiert02" usw. auf!

Mit dem Programm "SelectedFeaturetoList" ermittel ich die selektierten Elemente und übertrage in eine Liste,
damit arbeiten ich dann weiter. Das funktioniert wenn ich zb. "Oberfläche-Importiert01" im Feature-Baum
anselektiere. Nach Ausführung seht in der Liste "Oberfläche-Importiert01" usw.

Ich habe folgendes Problem:
Wenn ich die Fläche im Modell selektiere weis ich nicht wie ich den zugehörigen Körpername bzw. das Feature ermittel kann(also der Name im Featurebaum). Die Selektierte Fläche ist dann vom Typ swSelFACES und hat keinen Namen!

Hier das Unterprogamm. Kann mir jemand helfen? Ich hab keinen Rat mehr.
Das Unterprogramm nutzt die MySldWorks Klasse von Herrn Bühling (http://www.mysldworks.de)

Friend ReadOnly Property SelectedFeaturetoList() As List(Of String)
        Get
            'Solid WorksOkjekt mit aktuellen Dokument
            Dim oMySldWorks As MySldWorksCls
            oMySldWorks = New MySldWorksCls
            oMySldWorks.SolidWorksInstanz()
            Dim oSwModel As Object = oMySldWorks.AktuellesDokument

            'SelektionManager Objekt
            Dim oSwSelectionMgr As SldWorks.SelectionMgr
            oSwSelectionMgr = CType(oSwModel.SelectionManager, SldWorks.SelectionMgr)

            Dim selObj As Object
            Dim Name As String

            'Mark-Wert für alle Selektionen festlegen
            Dim iMarkWert As Integer = -1

            'Typ der Selektionen
            Dim eSwSelectType As SwConst.swSelectType_e

            'Anzahl aller selektierten Elemente
            'Debug.Print(CStr(oSwSelectionMgr.GetSelectedObjectCount2(iMarkWert)))

            'Liste
            Dim SelectedFeatureList As New List(Of String)

            'Alle selektierten Elemente in einer Schleife durchlaufen und Liste damit füllen
            For iIndex As Integer = 1 To oSwSelectionMgr.GetSelectedObjectCount2(iMarkWert)

                'Typ der Seketion
                eSwSelectType = CType(oSwSelectionMgr.GetSelectedObjectType3(iIndex, iMarkWert), _  SwConst.swSelectType_e)
                selObj = oSwSelectionMgr.GetSelectedObject5(iIndex)
                Name = oSwModel.GetEntityName(selObj)

                'Fehlerliste schreiben
                'Debug.Print(eSwSelectType.ToString)
                'Debug.Print(selObj.ToString)
                'Debug.Print(Name)

                'Prüfe ob Typ korrekt ist
                If eSwSelectType.ToString = "swSelREFSURFACES" Then
                    SelectedFeatureList.Add(Name)
                Else
                    'Sonst Fehlermeldung
                    MsgBox("Ungültige Auswahl,ignoriere Selektion: " & Name, vbExclamation, "SWtoA")
                End If
            Next

            Return SelectedFeatueList

        End Get
    End Property

------------------
Intel(R) Core(TM) Duo CPU
E8600 @ 3.33GHz
RAM: 8.00GB
NVidia Quadro FX 1700
Windows Vista 

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: 19. Sep. 2012 11: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 Hellmi 10 Unities + Antwort hilfreich

Hallo Hellmi,

Flächen haben keine Namen, aber wenn du die Fläche als Face2-Ob jekt hast kannst du mittels GetBody bzw. GetFeature das zugehörende Feature- oder Bodyobjekt ermitteln, was dann wiederum den Namen hat.

Als VBA-Makro sieht das so aus, solltest du ohne Schwierigkeiten in VB.Net auch so anwenden können.

Code:
Option Explicit

Public Enum swSelectType_e
    swSelFACES = 2          '  "FACE"
    swSelREFSURFACES = 27   '  "REFSURFACE"
End Enum

Sub main()
  
    Dim swApp                       As SldWorks.SldWorks
    Dim swModel                     As SldWorks.ModelDoc2
    Dim swModelExt                  As SldWorks.ModelDocExtension
    Dim swSelMgr                    As SldWorks.SelectionMgr
   
    Dim nSelCount                   As Long
    Dim nSelType                    As Long
    Dim swSelObj                    As Object
    Dim swBody                      As SldWorks.Body2
    Dim swFeat                      As SldWorks.Feature
   
    Dim i                           As Long
   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swModelExt = swModel.Extension
    Set swSelMgr = swModel.SelectionManager
   
    nSelCount = swSelMgr.GetSelectedObjectCount
   
    For i = 1 To nSelCount
       
        nSelType = swSelMgr.GetSelectedObjectType2(i)
       
        Debug.Print "  SelType(" & i & ") = " & nSelType
       
        Select Case nSelType
            Case swSelFACES, swSelREFSURFACES
                ' dann holen wir uns das Objekt, das ist jetzt ein IFace2
                Set swSelObj = swSelMgr.GetSelectedObject5(i)
               
                ' Feature, die zu dieser Fläche geführt hat
                Set swFeat = swSelObj.GetFeature
                Debug.Print "zugehörendes Features: " & swFeat.Name
                ' dito mit dem Körper
                Set swBody = swSelObj.GetBody
                Debug.Print "zugehörender Körper: " & swBody.Name
               
               
            Case Else
               
                Debug.Print "Dies ist nicht vom Typ Fläche"
               
        End Select
    Next i

End Sub



Ciao,
Stefan

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

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