| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
| Einweihung des IT-Campus Ellwangen mit Winfried Kretschmann bei INNEO, eine Pressemitteilung
|
Autor
|
Thema: LISP: Fangbereich bei get_selection (2191 mal gelesen)
|
holt Mitglied Systembetreuer CAD
Beiträge: 714 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.3 Creo Elements/Direct Drafting 20.3 Creo Elements/Direct ModelManager 20.3
|
erstellt am: 26. Jan. 2012 10:37 <-- editieren / zitieren --> Unities abgeben:
Hallo, wenn ich mittels get_selection abfrage, ob sich an einem Punkt eine Fläche befindet, werden auch Flächen gefunden, die neben dem Punkt liegen. Beispiel (siehe auch angehängtes Bild): (sd-call-cmds (get_selection :focus_type *sd-face-seltype* :select (sd-vec-xform (make-gpnt2d :x -0.5 :y 0) :source-space wp :dest-space :global))) bringt als Ergebnis eine Fläche. Weiß jemand, wie groß dieser Fangbereich ist bzw. ob dieser immer gleich groß ist? Kann der Fangbereich eingeschränkt werden? ------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JouIchBins Mitglied
Beiträge: 1 Registriert: 26.01.2012
|
erstellt am: 26. Jan. 2012 14:03 <-- editieren / zitieren --> Unities abgeben: Nur für holt
Hallo, der Fangbereich lässt sich z.B. direkt auf dem Arbeitsbereich einstellen einstellen und wird dort auch angezeigt (Symbolleiste "Fangen"). Kannst Du aber auch mit LISP z.B. Abfragen: (print (oli::sd-inq-catch-range)) Ich hoffe ich konnte Dir damit helfen. Grüße, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
Beiträge: 714 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.3 Creo Elements/Direct Drafting 20.3 Creo Elements/Direct ModelManager 20.3
|
erstellt am: 27. Jan. 2012 08:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Frank, danke für den Hinweis, aber das ist nicht das was ich meine. Der Wert in der Symbolleiste "Fangen" bezieht sich auf die interaktive Auswahl. Wenn man den Wert ändert, hat das keinen Einfluss auf die Funktion get_selection (habs getestet). ------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 659 Registriert: 20.11.2006
|
erstellt am: 27. Jan. 2012 11:49 <-- editieren / zitieren --> Unities abgeben: Nur für holt
Der Fangbereich scheint genau 1mm zu sein. Ob Box oder Kugel habe ich nicht getestet. Du wirst wohl leider nicht um sd-proj-pnt-on-face herumkommen: Code: (let (GLOBAL_WP_PNT3D FACES ONFACE_PNT3D MEINE_FLAECHE) (setf GLOBAL_WP_PNT3D (sd-vec-xform (make-gpnt2d :x -0.5 :y 0) :source-space (sd-inq-curr-wp) :Dest-space :global)) (setf FACES (sd-call-cmds (get_selection :focus_type *sd-face-seltype* :select GLOBAL_WP_PNT3D))) (dolist (A FACES) (setf ONFACE_PNT3D (sd-proj-pnt-on-face A GLOBAL_WP_PNT3D :source-space :global :sf-space nil)) (if ONFACE_PNT3D (if (sd-num-equal-p (sd-face-relax-pnt-dist ONFACE_PNT3D) 0) (progn (display (format nil "Dist=~amm - auf Fläche" (sd-face-relax-pnt-dist ONFACE_PNT3D))) (setf MEINE_FLAECHE A) ) (display (format nil "Dist=~amm - nicht auf Fläche" (sd-face-relax-pnt-dist ONFACE_PNT3D))) ) (display "nicht auf Fläche bzw. außerhalb der Flächenränder") ) ) (when MEINE_FLAECHE (sd-call-cmds (face_prop :the_face MEINE_FLAECHE :color 205)) ) )
------------------ Grüße aus Sachsen pw Karl Marx ist tot, Einstein ist tot, und mir ist auch schon ganz schlecht! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
Beiträge: 714 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.3 Creo Elements/Direct Drafting 20.3 Creo Elements/Direct ModelManager 20.3
|
erstellt am: 01. Feb. 2012 11:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Patrick, vielen Danke für das tolle Beispiel! Für meinen Zweck genügt es zwar, wenn ich statt 0.5mm auf 2mm Abstand gehe, aber dein Code ist ein gutes Anschauungsbeispiel. ------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |