Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Normalenvektor einer Ebene

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
  
SOLIDWORKS Grundlagen - Online-Live, ein Seminar am 27.07.2026
Autor Thema:  Normalenvektor einer Ebene (1209 mal gelesen)
sakalu
Mitglied


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

Beiträge: 2
Registriert: 01.12.2008

erstellt am: 02. Dez. 2008 20:19    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

wie kann ich den Normalenvektor einer ebene mir anzeigen lassen?
Momentan erstelle ich mit einer 3D-Skizze eine Linie und setze sie mit der ebene so in beziehung das sie senkrecht auf ihr steht. Dann kann ich über die Zusatzparameter der linie den Normalenvektor herrausfinden.
Da dies Sehr umständlich ist und ich ca. 1000 Normalenvektoren habe würde ich das lieber per script(makro) machen.

Dazu habe ich dieses Makro gefunden das aber nicht unter solidWorks2008 SP3 läuft. Kann mir da jemand helfen???
Der Pfeil (<--) markiert die stelle die nicht funktioniert.

'---------------------------------------------------------------
' How to get the parameters of a reference plane
'
' Preconditions:
'      1) part or assy is open
'      2) a reference plane is selected
'
' Postconditions:
'      none
'
' Notes:
'      1) Origin is translation vector from
'              plane origin -> model origin
'              wrt plane coordinate system
'          there should only ever be a Z component
'          in this vector
'
'      2) Xvector is wrt model coordinate system
'
'      3) Normal is wrt model coordinate system

Option Explicit

Sub main()
    Dim swApp                  As SldWorks.SldWorks
    Dim swModel                As SldWorks.ModelDoc2
    Dim swSelMgr                As SldWorks.SelectionMgr

    Dim swFeat                  As SldWorks.Feature
    Dim swRefPlane              As Object
    Dim vPlaneParam            As Variant
    Dim nDist                  As Double
    Dim bRet                    As Boolean

    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swFeat = swSelMgr.GetSelectedObject3(1) <--
    Set swRefPlane = swFeat.GetSpecificFeature

    vPlaneParam = swRefPlane.GetRefPlaneParams

    Debug.Print "Plane = " + swFeat.Name
    Debug.Print "  Model Origin (wrt Plane) = (" + _
                        Str(vPlaneParam(0) * 1000#) + "," + _
                        Str(vPlaneParam(1) * 1000#) + "," + _
                        Str(vPlaneParam(2) * 1000#) + ") mm"
    Debug.Print "  Xvector      (wrt Model) = (" + _
                        Str(vPlaneParam(3)) + "," + _
                        Str(vPlaneParam(4)) + "," + _
                        Str(vPlaneParam(5)) + ")"
    Debug.Print "  Normal      (wrt Model) = (" + _
                        Str(vPlaneParam(6)) + "," + _
                        Str(vPlaneParam(7)) + "," + _
                        Str(vPlaneParam(8)) + ")"

    nDist = Sqr(vPlaneParam(0) ^ 2 + vPlaneParam(1) ^ 2 + vPlaneParam(2) ^ 
2)
    Debug.Print "  Plane Origin (wrt Model) = (" + _
                        Str(nDist * vPlaneParam(6) * 1000#) + "," + _
                        Str(nDist * vPlaneParam(7) * 1000#) + "," + _
                        Str(nDist * vPlaneParam(8) * 1000#) + ") mm"
End Sub
'---------------------------------------------------------------

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: 03. Dez. 2008 08: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 sakalu 10 Unities + Antwort hilfreich

Hallo saluka,

Zitat:
Original erstellt von sakalu:
Dazu habe ich dieses Makro gefunden das aber nicht unter solidWorks2008 SP3 läuft. Kann mir da jemand helfen???
Der Pfeil (<--) markiert die stelle die nicht funktioniert.

' Preconditions:
'      1) part or assy is open
'      2) a reference plane is selected
[...]
    Set swFeat = swSelMgr.GetSelectedObject3(1) <--
[...]



Hast du denn auch deine Referenzebene schon selektiert, bevor du das Makro gestartet hast? Wenn das Makro an der Stelle aussteigt sieht es eigentlich so aus, als wäre nichts selektiert ...

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

sakalu
Mitglied


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

Beiträge: 2
Registriert: 01.12.2008

erstellt am: 03. Dez. 2008 14: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

die fläche hab ich natürlich vorher ausgewählt 

hab in der apihilfe dieses Script gefunden das auch funktioniert.

Sub main()

    Dim swApp                  As SldWorks.SldWorks
    Dim swModel                As SldWorks.ModelDoc2
    Dim swSelMgr                As SldWorks.SelectionMgr
    Dim swFace                  As SldWorks.Face2
    Dim swSurf                  As SldWorks.Surface
    Dim vPlane                  As Variant
    Dim i                      As Long
    Dim bRet                    As Boolean

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swFace = swSelMgr.GetSelectedObject5(1)
    Set swSurf = swFace.GetSurface
   
    If swSurf.IsPlane Then

        vPlane = swSurf.PlaneParams
   
        Debug.Print "File = " & swModel.GetPathName
        Debug.Print "  normal        = (" & vPlane(0) & ", " & vPlane(1) & ", " & vPlane(2) & ")"
        'Debug.Print "  root          = (" & vPlane(3) * 1000# & ", " & vPlane(4) * 1000# & ", " & vPlane(5) * 1000# & ") mm"

    End If

End Sub

Die Metohde GetSelectedObject3 gigt es wohl in der 2008er Version nicht mehr.

Trotzdem danke


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