Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Programmierung
  A point whether inside a part or not

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 Creo
Autor Thema:  A point whether inside a part or not (426 / mal gelesen)
Andylau
Mitglied



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

Beiträge: 55
Registriert: 07.06.2021

erstellt am: 08. Jun. 2022 05:10    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

Dear forum,
How to judge a point whether inside a part or not?

example 1:
part: a ball, radius 10mm, center at 0,0,0
point 0,0,0 and 10,0,0 is inside the ball. and point 20,0,0 is outside the ball

example 2:
part: a hollow ball, outer radius 10mm, inner radius 8mm, center at 0,0,0
point 0,0,0 and 20,0,0 are not inside the ball, point 10,0,0 is inside the ball

Is it possible to realize this in OSD?  I didn't find a solution in the IK funtions.

Thanks a lot!

Andy

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

achim96
Mitglied
Konstrukteur


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

Beiträge: 123
Registriert: 08.07.2013

Creo Elements / Direct Modeling, V20.1.4.0
Model Manager V20.1.4.0
Part Library

erstellt am: 08. Jun. 2022 09:06    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 Andylau 10 Unities + Antwort hilfreich

Hallo Andy,

mein Vorschlag:
reduziere das Problem auf eine 2D-Ebene, auf der beide bekannten Punkte (Punkt und Mittelpunkt) liegen. Die Schnittfläche des Körpers mit der Ebene müsste nun mit dem Punkt verglichen werden, ob er innerhalb oder ausserhalb liegt.

------------------
freundliche Grüße
Achim

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

Andylau
Mitglied



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

Beiträge: 55
Registriert: 07.06.2021

erstellt am: 08. Jun. 2022 09:29    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

Hi Achim,

Thanks for you answer.
The two examples I gave are simple, your idea may work.
But if the part is complex, and has no center, it is hard to find such a plane.


Zitat:
Original erstellt von achim96:
Hallo Andy,

mein Vorschlag:
reduziere das Problem auf eine 2D-Ebene, auf der beide bekannten Punkte (Punkt und Mittelpunkt) liegen. Die Schnittfläche des Körpers mit der Ebene müsste nun mit dem Punkt verglichen werden, ob er innerhalb oder ausserhalb liegt.


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

achim96
Mitglied
Konstrukteur


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

Beiträge: 123
Registriert: 08.07.2013

Creo Elements / Direct Modeling, V20.1.4.0
Model Manager V20.1.4.0
Part Library

erstellt am: 08. Jun. 2022 10:09    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 Andylau 10 Unities + Antwort hilfreich

das ist richtig. Erzeuge dann eine Ebene, die beliebig positioniert ist und den zu prüfenden Punkt beinhaltet. Auf jeden Fall ist dann dieser Punkt mit der Schnittfläche des Körpers auf dieser Ebene zu vergleichen. Ich glaube, man muß das Problem auf jeden Fall auf eine zweidimensionale Ebene reduzieren.

------------------
freundliche Grüße
Achim

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

achim96
Mitglied
Konstrukteur


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

Beiträge: 123
Registriert: 08.07.2013

Creo Elements / Direct Modeling, V20.1.4.0
Model Manager V20.1.4.0
Part Library

erstellt am: 08. Jun. 2022 10:21    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 Andylau 10 Unities + Antwort hilfreich

Es gibt den Befehl cross_section. Mit dem projizierst du dem Querschnitt auf eine Arbeitsebene. Nun müsste man von diesen Linien auf der Arbeitsebene einzeln Anfangs- und Endpunkte abfragen und "irgendwie" mit dem gesuchten Punkt vergleichen.

------------------
freundliche Grüße
Achim

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2143
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook 17 G4, Windows 10 Pro 64

erstellt am: 08. Jun. 2022 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 Nur für Andylau 10 Unities + Antwort hilfreich

Create a very small part "/T1" at the position you want to check, subtract the part you want to check.
Afterwards (sd-inq-empty-part-p (sd-inq-curr-part))

------------------
meine LISP-Makros sind mit vielen anderen aus diesem Forum auf osd.cad.de Disclaimer
Grüße aus Wien

Walter

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

achim96
Mitglied
Konstrukteur


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

Beiträge: 123
Registriert: 08.07.2013

Creo Elements / Direct Modeling, V20.1.4.0
Model Manager V20.1.4.0
Part Library

erstellt am: 08. Jun. 2022 13:27    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 Andylau 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von achim96:
Es gibt den Befehl cross_section. Mit dem projizierst du dem Querschnitt auf eine Arbeitsebene.


Nochmals zurück zu dem Querschnitt. Mit dieser Geometrie einem Hilfskörper T01 erzeugen und mit Flächenanalyse die Fläche von T01 mit unserem Punkt antippen. Wenn unser Punkt auf der Fläche liegt, dann wird die Fläche gemessen. Wenn nicht, gibt es kein Ergebnis bei der Flächenmessung, bedeutet der Punkt liegt nicht auf der Fläche.

------------------
freundliche Grüße
Achim

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

Andylau
Mitglied



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

Beiträge: 55
Registriert: 07.06.2021

erstellt am: 11. Jun. 2022 05: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

Thanks a lot! That's a very brillant method.


Zitat:
Original erstellt von Walter Geppert:
Create a very small part "/T1" at the position you want to check, subtract the part you want to check.
Afterwards (sd-inq-empty-part-p (sd-inq-curr-part))


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

der_Wolfgang
Ehrenmitglied V.I.P. h.c.
Tastenhauer


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

Beiträge: 2017
Registriert: 3.20.

● PE60+80@home
● W10 Pro Build19044.2364
● Drafting V17~V20.5.1
● Modeling V17~V20.5.1

erstellt am: 11. Jun. 2022 18:34    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 Andylau 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Walter Geppert:
Create a very small part "/T1" at the position you want to check, subtract the part you want to check.
Afterwards (sd-inq-empty-part-p (sd-inq-curr-part))

Das haut aber nicht immer hin!

gehen wir von einer Kugel aus die T1 = das Hilfsteil ist, radius 0,001mm. Gehen wir vom Grossen Part aus, hier: ein Würfel von 0,0,0 bis 10,10,10.

Wenn der PrüfPunkt nun bei 5.3,4,8.2 liegt ist alles gut.

Wenn der PrüfPunkt aber bei 0,0,5 liegt...   ist das resultierende Hilfspart /T1 eben NICHT leer. Sondern nun angeschnitten.

Daher folgender Ansatz:

Code:
(defun point-in-part-p (pnt test-part :key (resolution 0.0001))
  (let (part-at-pnt volumen-calculated volumen-measured
       (radius 0.001)  ;; oder == resolution ??  * 2 ??
        )

   ;; create help part ..
   ;;; halbkreis geo + turn
   ...
   (setq volumen-calculated (calculate-volummen ... )) ; faster than a measure
  
   ;; subtract ...
  
   ;; check
   (if (sd-inq-empty-part-p part-at-pnt)
     T
     ;; else
     (progn
       (setq volumen-measured (sd-call-cmds .. etc)) ;; expensive call
       (not (sd-num-equal-p volumen-calculated volumen-measured :resolution resolution))
       )
     )
   )
  )


so in etwa.

not tested .  nur nach gedacht und runtergeschrieben


Jaja.  die 42 border cases lassen den Source Code eben immer komplizierter aussehen....  

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

[Diese Nachricht wurde von der_Wolfgang am 11. Jun. 2022 editiert.]

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



Auszubildenden Technischer Systemplaner - Versorgungs- und Ausrüstungstechnik (m/w/d)

Von Industriebetrieb, Forschungszentrum, Krankenhaus, Büroimmobilie und Hochschule bis zur Elbphilharmonie oder Antarktisstation: Die über 300 Ingenieure der M&P Gruppe sorgen für zukunftsweisende Energiesysteme, modernste gebäudetechnische Anlagen und innovative Gebäudedigitalisierung!

Im Geschäftsfeld Engineering erarbeiten unsere Ingenieurteams modernste Designlösungen für Energie- und Gebäudetechnik in allen relevanten Branchen und Institutionen....

Anzeige ansehenGebäude-, Versorgungs-, Sicherheitstechnik
Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2143
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook 17 G4, Windows 10 Pro 64

erstellt am: 11. Jun. 2022 19:15    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 Andylau 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von der_Wolfgang:

Das haut aber nicht immer hin!


War mir schon auch klar und nur als Denkanstoss gedacht. Sollen die Leute doch auch ein bissel was weiterentwickeln 
Jedenfalls einfacher als die Geschichte mit den Arbeitsebenen, 3D bleibt 3D 

------------------
meine LISP-Makros sind mit vielen anderen aus diesem Forum auf osd.cad.de Disclaimer
Grüße aus Wien

Walter

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