Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  SolidWorks Makro Fläche (Planare Oberflächen) ermitteln und exportieren

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:  SolidWorks Makro Fläche (Planare Oberflächen) ermitteln und exportieren (1650 mal gelesen)
CTJ
Mitglied


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

Beiträge: 7
Registriert: 08.08.2013

erstellt am: 13. Aug. 2013 13:56    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


Beispiel_01.JPG


Beispiel_02.JPG


Beispiel_03.JPG

 
Guten Tag zusammen,

ich benötige wieder einmal Eure Hilfe. Ich möchte bestimmte Flächen in meinem Modell (Part) mit einem Makro selektieren und die Fläche ermitteln, dann in Excel exportieren.

Mein Ansatz ist über "Measure Selected Entities Example (VBA)" aus der API-Hilfe. Ich schaffe es zwar mit diesem Makro die Größe der Flächen zu ermitteln,muss diese jedoch vorher selber selektieren. Ich möchte bestimmte Flächen in meinem Modell selektieren, wie im Bild zum Beispiel "Oberfläche-Ebene1". Wenn ich das Feature "Oberfläche-Ebene1" (siehe "Beispiel_02") selektiere erscheint "Invalid combination of selected entities", selektiere ich jedoch die Fläche (Face) (siehe "Beispiel_03") erscheint "Area: 0,01, Perimeter: 0,4". Wie komme ich über das Feature mit einem Makro an die Fläche?

Habt ihr ein paar Tipps?

Danke im Voraus!


Gruß

CTJ

Anbei das Makro "Measure Selected Entities Example (VBA)" aus der API-Hilfe

'This example shows how to use the IMeasure APIs.

'****************************************************

'

' Preconditions: Model document is open and measurable objects

'                are selected.

'

' Postconditions: None.

'

'****************************************************

Option Explicit

Dim swApp As SldWorks.SldWorks

Dim Part As ModelDoc2

Dim Measure As Measure

Dim boolstatus As Boolean

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

Set Measure = Part.Extension.CreateMeasure

Measure.ArcOption = 0      'Can set this to 0, 1, or 2

                            ' 0 - Center to Center

                            ' 1 - Minimum Distance

                            ' 2 - Maximum Distance

Dim strDisplay As String

boolstatus = Measure.Calculate(Nothing)

If (boolstatus) Then

    If (Not (Measure.Length = -1)) Then

        Debug.Print "Length: " & Measure.Length

    End If

   

    If (Not (Measure.Area = -1)) Then

      Debug.Print "Area: " & Measure.Area

    End If
 
    If (Not (Measure.ArcLength = -1)) Then

        Debug.Print "Arc length: " & Measure.ArcLength

    End If
   
    If (Not (Measure.ChordLength = -1)) Then

      Debug.Print "Chord length: " & Measure.ChordLength

    End If
   
    If (Not (Measure.Diameter = -1)) Then

      Debug.Print "Diameter: " & Measure.Diameter

    End If
   
    If (Not (Measure.Radius = -1)) Then

        Debug.Print "Radius: " & Measure.Radius

    End If

    If (Not (Measure.Perimeter = -1)) Then

        Debug.Print "Perimeter: " & Measure.Perimeter

    End If

    If (Not (Measure.X = -1)) Then

        Debug.Print "X coordinate: " & Measure.X

    End If
   
    If (Not (Measure.Y = -1)) Then

        Debug.Print "Y coordinate: " & Measure.Y

    End If
   
    If (Not (Measure.Z = -1)) Then

        Debug.Print "Z coordinate: " & Measure.Z

    End If
   
    If (Not (Measure.DeltaX = -1)) Then

        Debug.Print "DeltaX: " & Measure.DeltaX

    End If
   
    If (Not (Measure.DeltaY = -1)) Then

        Debug.Print "DeltaY: " & Measure.DeltaY

    End If

    If (Not (Measure.DeltaZ = -1)) Then

        Debug.Print "DeltaZ: " & Measure.DeltaZ

    End If

    If (Not (Measure.Angle = -1)) Then

        Debug.Print "Angle: " & Measure.Angle

    End If

    If (Not (Measure.CenterDistance = -1)) Then

        Debug.Print "Center distance: " & Measure.CenterDistance

    End If
   
    If (Not (Measure.NormalDistance = -1)) Then

        Debug.Print "Normal distance: " & Measure.NormalDistance

    End If
   
    If (Not (Measure.Distance = -1)) Then

        Debug.Print "Distance: " & Measure.Distance

    End If
   
    If (Not (Measure.TotalLength = -1)) Then

        Debug.Print "Total length: " & Measure.TotalLength

    End If
   
    If (Not (Measure.TotalArea = -1)) Then

        Debug.Print "Total Area : " & Measure.TotalArea

    End If

    If (Measure.IsParallel) Then

        Debug.Print "IsParallel : " & Measure.IsParallel

    End If
   
    If (Measure.IsIntersect) Then

        Debug.Print "Is Intersect : " & Measure.IsIntersect

    End If

    If (Measure.IsPerpendicular = -1) Then

        Debug.Print "Is Perpendicular : " & Measure.IsPerpendicular

    End If
   
    If (Not (Measure.Projection = -1)) Then

        Debug.Print "Projection : " & Measure.Projection

    End If

    If (Not (Measure.Normal = -1)) Then

        Debug.Print "Normal : " & Measure.Normal

    End If

    If (Not (Measure.SpericalCenterDistance = -1)) Then

        Debug.Print "Sperical Center Distance : " & Measure.SpericalCenterDistance

    End If
 
    If (Measure.IsConcentricSpheres) Then

        Debug.Print "Is Concentric Spheres : " & Measure.IsConcentricSpheres

    End If

Else

    Debug.Print "Invalid combination of selected entities."

End If

   

End Sub


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

CTJ
Mitglied


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

Beiträge: 7
Registriert: 08.08.2013

erstellt am: 17. Aug. 2013 15: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

Guten Tag zusammen,

ich wäre Euch sehr dankbar, wenn Ihr mir weiterhelfen könntet...Ich komme bei diesem Thema nicht wirklich weiter  .

Gruß

CTJ

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

GDawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



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

Beiträge: 2622
Registriert: 12.07.2004

SolidWorks_2o2o SP3.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o19_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

erstellt am: 19. Aug. 2013 09: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 CTJ 10 Unities + Antwort hilfreich

Also, das sieht auf den ersten Blick recht einfach aus - ist es aber nicht!

Da Du zwei Oberflächenkörper hast und nicht zwei Oberflächen! Klingt komisch, ist aber so.
Du musst zuerst, pro Körper, eine Fläche auswählen. Dann erst kannst Du diese messen.

Finde das Zentrum der Körper und versuche an der Stelle die Oberfläche zu selektieren. Mit append=true kannst Du dann mehr als eine Fläche selektieren.

HTH

------------------

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