Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Punkt und Linie normal zur fläche

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 NX
Autor Thema:  Punkt und Linie normal zur fläche (2531 mal gelesen)
Hauki2905
Mitglied
Softwareentwicklung CAD-CAM


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

Beiträge: 113
Registriert: 03.02.2011

NX 7.5; 8.0; 8.5, 9.0, 10 auf Win 8.1 x64

erstellt am: 24. Feb. 2011 10:51    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

erstmal ein Moin an alle,

ich habe folgendes Problem: ich möchte via nxopen einen Punkt auf einer vorhandenen fläche plazieren und dann eine Linie normal zu dieser fläche und durch den punkt legen (länge x)
ich habe mir dazu mal ein journal aufgezeichnet und die vorgehensweise etwas nachvollzogen. aber jetzt bekomme ich in meinem kleinen Programm immer einen Fehler wenn ich linebuilder.commit() ausführe: "Cannot compute Plane" mein code sieht momentan so aus:

Code:
Private Sub createlineonsurface(ByVal part As Part, ByVal start As Point, ByVal ende As Point)
        Dim linie As NXOpen.Features.AssociativeLine = Nothing
        Dim linebuilder As NXOpen.Features.AssociativeLineBuilder
        linebuilder = part.BaseFeatures.CreateAssociativeLineBuilder(linie)
        Dim mypoint As Point3d = Nothing
        Dim surface As Face = SelectASurf("selec a surface", mypoint) ' gibt eine Fläche [FACE] zurück, die ich ausgewählt habe
     
        start = SelectAPoint("select Point") ' gibt einen Punkt [Point] zurück, den ich ausgewählt habe
     
        Dim origin1 As Point3d = New Point3d(0.0, 0.0, 0.0)
        Dim normal1 As Vector3d = New Vector3d(0.0, 0.0, 1.0)

        mypoint = start.Coordinates


        Dim plane1 As Plane
        plane1 = part.Planes.CreatePlane(origin1, normal1, SmartObject.UpdateOption.WithinModeling)
        Dim nullfeatures_Feature As Features.Feature = Nothing
 
        Dim nullView As View = Nothing

        Dim nullUnit As Unit = Nothing

        Dim expression1 As Expression
        expression1 = part.Expressions.CreateSystemExpressionWithUnits("0.903321406039793", nullUnit)

        Dim expression2 As Expression
        expression2 = part.Expressions.CreateSystemExpressionWithUnits("0.865746102332004", nullUnit)

        Dim scalar4 As Scalar
        scalar4 = part.Scalars.CreateScalarExpression(expression1, Scalar.DimensionalityType.None, SmartObject.UpdateOption.WithinModeling)

        Dim scalar5 As Scalar
        scalar5 = part.Scalars.CreateScalarExpression(expression2, Scalar.DimensionalityType.None, SmartObject.UpdateOption.WithinModeling)


        Dim point2 As Point
        point2 = part.Points.CreatePoint(surface, scalar4, scalar5, SmartObject.UpdateOption.WithinModeling)

        Dim nXObject1 As NXObject = Nothing
        Dim xform1 As Xform
        xform1 = part.Xforms.CreateExtractXform(surface, SmartObject.UpdateOption.WithinModeling, False, nXObject1)

        Dim point3 As Point
        point3 = part.Points.CreatePoint(point2, xform1, SmartObject.UpdateOption.WithinModeling)

        point3.RemoveParameters()

        Dim coordinates1 As Point3d = mypoint
        point3.SetCoordinates(coordinates1)


        linebuilder.StartPointOptions = Features.AssociativeLineBuilder.StartOption.Point
        linebuilder.StartAngle.RightHandSide = "0"
        linebuilder.StartPoint.Value = point3

        linebuilder.EndPointOptions = Features.AssociativeLineBuilder.EndOption.Normal
        linebuilder.EndNormal.Value = surface

        Dim point4 As New Point3d(mypoint.X, mypoint.Y, mypoint.Z)

        linebuilder.EndNormal.SetValue(surface, nullView, point4)


        linebuilder.Limits.StartLimit.LimitOption = GeometricUtilities.CurveExtendData.LimitOptions.AtPoint
        linebuilder.Limits.EndLimit.LimitOption = GeometricUtilities.CurveExtendData.LimitOptions.Value

        linebuilder.Limits.StartLimit.Distance.RightHandSide = "0"
        linebuilder.Limits.EndLimit.Distance.RightHandSide = "20"


        linebuilder.SupportPlaneData.SupportPlaneLockStatus = GeometricUtilities.SupportPlaneData.LockPlaneStatus.No
        Try
       
            linebuilder.Commit()

        Catch ex As Exception
            Dim str As String = ex.ToString
        End Try

    End Sub


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

Hauki2905
Mitglied
Softwareentwicklung CAD-CAM


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

Beiträge: 113
Registriert: 03.02.2011

NX 7.5; 8.0; 8.5, 9.0, 10 auf Win 8.1 x64

erstellt am: 24. Feb. 2011 10: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

edit:
expression 1 und 2 habe ich gerade mal fix festgelegt, weil ich noch nicht rausgefunden habe, wie ich den u- und v- parameter des punktes bzgl der fläche rausfinde.

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

Hauki2905
Mitglied
Softwareentwicklung CAD-CAM


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

Beiträge: 113
Registriert: 03.02.2011

NX 7.5; 8.0; 8.5, 9.0, 10 auf Win 8.1 x64

erstellt am: 24. Feb. 2011 16:50    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

also ich habe es jetzt hinbekommen,
abllerdings eher durch zufall. ich habe festgestellt, dass es scheinbar nicht möglich ist, eine Linie senkrecht zur Fläche in einer assembly zu erzeugen??
wenn ichs in nem einzelnen part mache klappt es.
Code:
Private Sub createlineonsurface(ByVal part As Part, ByVal start As Point, ByVal ende As Point)
     
        Dim linie As NXOpen.Features.AssociativeLine 'Ä= Nothing
        Dim linebuilder As NXOpen.Features.AssociativeLineBuilder
        linebuilder = part.BaseFeatures.CreateAssociativeLineBuilder(linie)
        Dim mypoint As Point3d = Nothing
        Dim surface As Face = SelectASurf("selec a surface", mypoint)
        start = SelectAPoint("select Point")

        mypoint = start.Coordinates

        Dim mystartpoint As Point

        mystartpoint = part.Points.CreatePoint(start.Coordinates)
     
        linebuilder.StartPointOptions = Features.AssociativeLineBuilder.StartOption.Point

        linebuilder.StartPoint.Value = mystartpoint

        linebuilder.EndPointOptions = Features.AssociativeLineBuilder.EndOption.Normal
        linebuilder.EndNormal.Value = surface

        linebuilder.Limits.StartLimit.LimitOption = GeometricUtilities.CurveExtendData.LimitOptions.AtPoint
        linebuilder.Limits.EndLimit.LimitOption = GeometricUtilities.CurveExtendData.LimitOptions.Value

        linebuilder.Limits.StartLimit.Distance.RightHandSide = "0"
        linebuilder.Limits.EndLimit.Distance.RightHandSide = "20"

        Try
            linebuilder.Commit()

        Catch ex As Exception
            Dim str As String = ex.ToString
        End Try

    End Sub


jemand ne idee/erklärung dazu???
Danke schonmal

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



Teamleiter Integration Vehicle Device (m/w/d)

Als Teamleiter (m/w/d) übernehmen Sie die fachliche Führung eines Konstruktionsteams, welches für die ganzheitliche mechanische Integration von Rüstsätzen/ Gerätesätzen in militärischen Systemen verantwortlich ist.


Zu Ihrem Aufgabenfeld gehören unter anderem folgende Punkte:

  • Fachliche Führung eines Konstruktionsteams mit Schwerpunkt auf der Konstruktion ...
Anzeige ansehenTeamleitung, Gruppenleitung
Hauki2905
Mitglied
Softwareentwicklung CAD-CAM


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

Beiträge: 113
Registriert: 03.02.2011

NX 7.5; 8.0; 8.5, 9.0, 10 auf Win 8.1 x64

erstellt am: 17. Mrz. 2011 16:16    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

ich habe die lösung gefunden: in einer assembly funktioniert es so nicht. nur in einem einzelteil. warum weiß ich auch nicht.

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