Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Schnittpunkt v. 2 unendl. Hilfslinien

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 PTC CREO
  
MAIT erhält den Abas Partner Performance Award 2025, eine Pressemitteilung
Autor Thema:  Schnittpunkt v. 2 unendl. Hilfslinien (1713 mal gelesen)
Patrick Weber
Mitglied
Konstruktionstechniker, Admin


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

Beiträge: 659
Registriert: 20.11.2006

erstellt am: 04. Nov. 2008 14:07    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 Community!

Ich versuche seit einiger Zeit den Schnittpunkt zweier unendlicher Hilfslinien auf einer AE abzufragen und komme zu keinem Ergebnis. 


Code:

            ; *schnipp*
            (setf R 3)
            (setf GAMMA 12)
            (setf P0 (make-gpnt2d :x 0 :y 0))
            (setf PU (make-gpnt2d :x 0 :y (* -1 R)))
            (c_line_inf :vertical P0)
            (c_line_inf :angle PU (* -1 (sd-deg-to-rad GAMMA)))
            (setf L1 (sd-call-cmds (get_selection :focus_type *sd-c-geom-2d-seltype*
                    :curr_wp_only
                    :single_selection
                    :select :c_edge_2d P0
                    )))
            (setf L2 (sd-call-cmds (get_selection :focus_type *sd-c-geom-2d-seltype*
                    :curr_wp_only
                    :single_selection
                    :select :c_edge_2d PU
                    )))
            (setf P1 (sd-inq-edge-edge-int-pts L1 L2 :Dest-space :local))
            (display L1)
            (display L2)
            (display (sd-inq-edge-geo L1))
            (display (sd-inq-edge-geo L2))
            (display P1)
            ; *schnapp*

Code:

#S(SEL_ITEM PATH
      (#S(NPARCEL SIMPLE-ENTITY-PTR 75740736)
      #S(NPARCEL SIMPLE-ENTITY-PTR 357734720))
      TYPE 75748752 ITEM #S(EDGE SIMPLE-ENTITY-PTR 359844304))

#S(SEL_ITEM PATH
      (#S(NPARCEL SIMPLE-ENTITY-PTR 75740736)
      #S(NPARCEL SIMPLE-ENTITY-PTR 357734720))
      TYPE 75748752 ITEM #S(EDGE SIMPLE-ENTITY-PTR 359844304))

#S(SD-EDGE S-START 0.0 S-END 0.0 START-PNT
          0.0,0.0,0.0 END-PNT
          0.0,0.0,0.0 LL-PNT
          0.0,0.0,0.0 UR-PNT
          0.0,0.0,0.0 CLOSED NIL PERIODIC NIL)

#S(SD-EDGE S-START 0.0 S-END 0.0 START-PNT
          0.0,0.0,0.0 END-PNT
          0.0,0.0,0.0 LL-PNT
          0.0,0.0,0.0 UR-PNT
          0.0,0.0,0.0 CLOSED NIL PERIODIC NIL)

NIL


Wie man sieht, wählt er die Elemente aus (hoffe ich mal, wenn kein Fehler kommt  ) - nur leider ohne verwertbaren Inhalt, also Punkt und Richtung usw. und deshalb auch keinen Schnittpunkt.

Hat jemand eine Idee an den Schnittpunkt zu kommen, ohne jetzt den ganzen Krams über Vektorrechnung auszurechnen? (das wollte ich mir dadurch eigentlich ersparen)

Bitte erleuchtet mich! 

------------------
Grüße
pw

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

highway45
Moderator
Bastler mit Diplom




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

Beiträge: 6385
Registriert: 14.12.2004

CoCreate Modeling V20 + PE6
NotePad++

erstellt am: 04. Nov. 2008 15:30    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 Patrick Weber 10 Unities + Antwort hilfreich

Sieh dir mal dieses Lisp an:

http://osd.cad.de/lisp_3d.htm#51

------------------
          http://osd.cad.de/

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 720
Registriert: 07.08.2003

Lenovo ThinkStation P360
Core i7-12700@2.10 GHz, 32GB
NVIDIA RTX A2000 12 GB
Creo Elements/Direct Modeling 20.5
Creo Elements/Direct Drafting 20.5
Creo Elements/Direct ModelManager 20.5

erstellt am: 04. Nov. 2008 16:32    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 Patrick Weber 10 Unities + Antwort hilfreich

Hallo Patrick,

leg mal den Startpunkt der 2. Hilfslinie statt auf x=0 auf z.B. x=2, dann wirst du ein Ergebnis bekommen.

Kannst du dir denken, worauf ich hinaus will?

------------------
Gruß aus dem Salzkammergut

Thomas

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

Patrick Weber
Mitglied
Konstruktionstechniker, Admin


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

Beiträge: 659
Registriert: 20.11.2006

erstellt am: 04. Nov. 2008 20: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

Verdammt!     

Ich habe den Fehler gefunden... Auf meiner Skizze ist die erste Hilfslinie (L1) eine Vertikale. Die Arbeitsebene ist aber um den Winkel Alpha eingedreht, wodurch die Linie nicht mehr vertikal ist.     

Also LISP angepasst und funzt nun. 

@highway45:
Hatte ich mir schon vorher angeschaut, brachte mir aber keine Erleuchtung.   

@holt:
Willst du auf einen Fangbereich anspielen oder auf eine mögliche Punktüberdeckung? Letztere wird durch meine Variablendefinition im Dialog nicht möglich sein.

------------------
Grüße
pw

[Diese Nachricht wurde von Patrick Weber am 05. Nov. 2008 editiert.]

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 720
Registriert: 07.08.2003

Lenovo ThinkStation P360
Core i7-12700@2.10 GHz, 32GB
NVIDIA RTX A2000 12 GB
Creo Elements/Direct Modeling 20.5
Creo Elements/Direct Drafting 20.5
Creo Elements/Direct ModelManager 20.5

erstellt am: 05. Nov. 2008 11:00    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 Patrick Weber 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Patrick Weber:
@holt:
Willst du auf einen Fangbereich anspielen oder auf eine mögliche Punktüberdeckung? Letztere wird durch meine Variablendefinition im Dialog nicht möglich sein.

Nein! Aber es hat etwas mit dem Fang zu tun.
Überleg mal: Am Punkt PU liegen 2 Hilfslinien. Mit deinem LISP ist nicht gewährleistet, dass die schräge Hilfslinie gefunden wird. Tatsächlich wird bei beiden get_selection die selbe (senkrechte) Hilfslinie gefunden. Und die beiden (  ) haben keinen Schnittpunkt.

------------------
Gruß aus dem Salzkammergut

Thomas

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

Patrick Weber
Mitglied
Konstruktionstechniker, Admin


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

Beiträge: 659
Registriert: 20.11.2006

erstellt am: 05. Nov. 2008 13: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

Ja, hast schon Recht. Wären ja beides Vertikale bei x=0. Genau das war auch mein Fehler. Ich hätte nicht :vertical nehmen dürfen, sondern hätte die Hilfslinie im Winkel setzen müssen.

Code:

        (setf PN (make-gpnt2d :x 0 :y 0)) ; Nullpunkt AE
        (setf PU (make-gpnt2d :x 0 :y (* -1 R))) ; Hilfspunkt - legt Durchmesser des Tunnelangusses fest
        (setf P1 (make-gpnt2d :x (- 0 0.1) :y 0)) ; Punkt für Vertikale + Offset links
        (geometry_mode :real)
        (c_line_inf :angle P1 (sd-deg-to-rad (- 90 ALPHA))) ; Vertikale an Einsatzwand + Offset links
        (c_line_inf :angle PU (* -1 (sd-deg-to-rad GAMMA))) ; Tunnelwandlinie
        (setf L1 (sd-call-cmds (get_selection :focus_type *sd-c-geom-2d-seltype*
              :curr_wp_only
              :single_selection
              :select :c_edge_2d P1
              ))) ; fange Vertikale
        (setf L2 (sd-call-cmds (get_selection :focus_type *sd-c-geom-2d-seltype*
              :curr_wp_only
              :single_selection
              :select :c_edge_2d PU
              ))) ; fange Tunnelwandlinie
        (setf P2 (sd-gpnt3d-to-2d (first (sd-inq-edge-edge-int-pts L1 L2 :Dest-space :local)))) ; Schnittpunkt Vertikale - Tunnelwandlinie
        (delete_2d P1)

------------------
Grüße
pw

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 720
Registriert: 07.08.2003

Lenovo ThinkStation P360
Core i7-12700@2.10 GHz, 32GB
NVIDIA RTX A2000 12 GB
Creo Elements/Direct Modeling 20.5
Creo Elements/Direct Drafting 20.5
Creo Elements/Direct ModelManager 20.5

erstellt am: 06. Nov. 2008 06:26    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 Patrick Weber 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Patrick Weber:
Ich hätte nicht :vertical nehmen dürfen, sondern hätte die Hilfslinie im Winkel setzen müssen.

Ob du eine Linie als Vertikale oder geneigte mit Winkel 90° erstellst spielt keine Rolle.
Das Problem ist, dass am Punkt PU 2 Linien durchgehen und bei :single_selection die erste gefundene zurückgegeben wird. Das ist dann zufällig wieder sie senkrechte.

Du solltest in solchen Fällen nicht mit :single_selection arbeiten sondern alle an dem Punkt liegenden Linien sammeln und den Inhalt der Liste mit der bereits vorher gefundenen Linie vergleichen.

Oder in einer :check-function die gereits gefundenen Linie herausfiltern. (Dann kann glaub ich wieder :single_selection verwendet werden.)

------------------
Gruß aus dem Salzkammergut

Thomas

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

Patrick Weber
Mitglied
Konstruktionstechniker, Admin


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

Beiträge: 659
Registriert: 20.11.2006

erstellt am: 06. Nov. 2008 08: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


anguss.gif

 
Ein Bild sagt mehr als tausend Worte.

 

Beide Linien können nicht durch Punkt PU laufen, da PU_y != P1_y durch R>0,25 und entsprechenden Anstellwinkel ALPHA>10° und 6°<GAMMA<12°.

[Diese Nachricht wurde von Patrick Weber am 06. Nov. 2008 editiert.]

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 720
Registriert: 07.08.2003

Lenovo ThinkStation P360
Core i7-12700@2.10 GHz, 32GB
NVIDIA RTX A2000 12 GB
Creo Elements/Direct Modeling 20.5
Creo Elements/Direct Drafting 20.5
Creo Elements/Direct ModelManager 20.5

erstellt am: 06. Nov. 2008 19:36    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 Patrick Weber 10 Unities + Antwort hilfreich

Hallo Patrick,

ich habe deinen veränderten Code leider nicht mehr gelesen und habe mich immer auf deinen ursprünglichen Code bezogen:

Code:
            (setf P0 (make-gpnt2d :x 0 :y 0))
            (setf PU (make-gpnt2d :x 0 :y (* -1 R)))
            (c_line_inf :vertical P0)
            (c_line_inf :angle PU (* -1 (sd-deg-to-rad GAMMA)))


Und da gehen definitiv beide durch den Punkt PU!

Das ist die Erklärung dafür, dass das Ergebnis des Schnittpunkts nil war. 

------------------
Gruß aus dem Salzkammergut

Thomas

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