Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Normalenvektoren

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
KISTERS 3DViewStation: Unterstützung für 3D CAD Kollaboration mit Lieferanten, eine Pressemitteilung
Autor Thema:  Normalenvektoren (2907 mal gelesen)
tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 29. Nov. 2006 14:54    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,

weiss nicht so recht ob ich in dieser rubrik richtig bin, oder ob meine frage vielleicht eher unter flächen o.ä. gehört.

und zwar habe ich ein Problem bzgl dem Rausfinden von Normalenvektoren bei Körpern allgemein.

Es sollte irgendwie möglich sein, die Normalenvektoren von Körpern aus dem Code rauszufinden (mit VB) also über die Makros.?

Da ich jedoch absoluter Neuling bzgl programmieren bin, weiss ich nicht so recht wo ich danach suchen soll.

Weiss jemand wie ich die Normalenvektoren zu einem beliebigen Körper/Fläche rausfinden kann? Oder wo ich im Code suchen muss?


Vielen Dank im Vorraus

Gruß  Tobi

[Diese Nachricht wurde von tgeier am 29. Nov. 2006 editiert.]

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

KlausJ
Mitglied



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

Beiträge: 1336
Registriert: 17.03.2003

CATIA V4.2.4 Ref 2
CATIA V5R16SP7
AIX 5.3
Windows 2000 und XP

erstellt am: 29. Nov. 2006 15: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 tgeier 10 Unities + Antwort hilfreich

Hallo Tobi,
ich bin kein Programmierer, aber Deine Frage ist falsch gestellt. Mathematisch ist es nur möglich, einen Normalenvektor zu einer Ebene zu ermitteln. Hast Du eine beliebige Fläche, gilt das nur für einen Punkt auf dieser. Für einen Körper gibt es per Definitionem keine Normale, sondern nur für einzelne Begrenzungsflächen.

------------------
Nichts ändern ist langweilig !!

Klaus

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 29. Nov. 2006 15:49    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 Klaus,

das ist mir auch klar, dass es keine Normale auf einen Körper gibt.
Ich meine natürlich die Normalenvektoren von Flächen eines beliebigen Körpers.

Gibt es irgend eine Möglichkeit diese Vektoren rauszufinden?
Wo könnten ich sie finden?

[Diese Nachricht wurde von tgeier am 29. Nov. 2006 editiert.]

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

KlausJ
Mitglied



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

Beiträge: 1336
Registriert: 17.03.2003

CATIA V4.2.4 Ref 2
CATIA V5R16SP7
AIX 5.3
Windows 2000 und XP

erstellt am: 29. Nov. 2006 17:43    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 tgeier 10 Unities + Antwort hilfreich

Ich bin auch kein Programmierer, aber grundsätzlich mußt Du die Flächen aus dem Körper extrahieren und dann eine Loop über die Flächen laufen lassen. Ich glaube nicht, daß es für einen geübten "CATScript" Programmierer ein großes Problem ist, solange die Flächen eben sind.

------------------
Nichts ändern ist langweilig !!

Klaus

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 30. Nov. 2006 11:39    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

zunächst mal vielen Dank für deine Mühe. --> 10 Unities.
das mit dem Loop werd ich auch mal versuchen, ob ich da irgendwas rausbekomme.


aber vielleicht sollte ich meine frage etwas anders stellen:

nehmen wir mal an ich habe eine beliebige Fläche generiert.
Nun möchte ich zu dieser Fläche den/die Normalenvektor/en rausfinden.

Ist es irgendwie möglich sich diese ausgeben zu lassen?
oder wo könnte man die finden?
müssen doch irgendwo im code versteckt sein.


Hoffe mir kann hier jemand helfen, denn ich denke auch dass es für einen der sich mit programmierung auskennt recht einfach sein könnte.


Vielen Dank im Vorraus

Gruß  Tobi

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 30. Nov. 2006 11:47    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 tgeier 10 Unities + Antwort hilfreich

Hallo,

du musst die Flächen nicht extrahieren. Wenn du dein Volumen in eine Selection schiebst und ein Search (Topology.CGMFace) durchführst, erhälst du über das jeweilige Selection.Item(n).Reference einen Verweis zu allen Teilflächen der Oberfläche deines Volumens (also der BReps). Über den Namen des Verweises (Reference.Name) kannst du dir mit .CreateReferenceFromName eine "richtige" Referenz erzeugen, welche die Grundlage einer Messung bildet: ...Measureable.getPlane gibt dir ein array zurück, welches u.a. die Vektoren der Flächennormalen enthält, sofern die Fläche planar ist.


Gruss
TomTom

------------------
tomtom1972

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 30. Nov. 2006 11:56    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 tgeier 10 Unities + Antwort hilfreich

Hallo,

jetzt warst du mit deinem Beitrag schneller als ich.
Das funktioniert wie gesagt über eine Messung. Wobei ich zu "beliebig" auch nicht planare Flächen zähle, und diese haben keinen (eindeutigen) Normalenvektor, sonder beliebig (unendlich) viele. Du musst also noch defineren, welcher Normalenvektor (in welchem Punkt der Fläche) für dich von Interesse ist (z.B. im Schwerpunkt), wobei dieser Vektor dann keinen Rückschluss auf die gesammte Fläche zulässt, sondern nur auf ihre Stetigkeit in dem Punkt, in welchem der Normalenvektor die Fläche durchstösst (weil der Schwerpunkt einer gewölbten Fläche selten auf der Fläche sebst zu finden ist.)

Hilft dir das irgendwie weiter?

Gruss
TomTom

------------------
tomtom1972

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 30. Nov. 2006 12:45    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 TomTom,

ich glaube das ist genau das was ich gesucht habe.
werde das mal ausprobieren.

wenn ich nun also eine beliebige fläche habe, und diese mehrere teilflächen, also mehrere Normalenvektoren, wie definiere ich dann die einzelnen punkte die ich betrachten will, bzw alle punkte, also alle Normalenvektoren dieser flächen?


P.S. auch für dich 10 Unities !!

[Diese Nachricht wurde von tgeier am 30. Nov. 2006 editiert.]

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 30. Nov. 2006 13:59    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 tgeier 10 Unities + Antwort hilfreich

Hallo,

die Frage geht schon wieder vom falschen Ansatz aus (oder ich verstehe dich einfach nicht richtig):

Die Teilfläche einer Fläche ist noch lange keine planare Fläche, die durch eine Normale beschrieben werden könnte.

Ein Extrem-Beispiel: Die Oberfläche einer Kugel ist eine einzige in sich geschlossene Fläche (die keine Teilflächen mehr enthält). Jede "Normale" durch jeden Punkt auf der Oberfläche der Kugel wird durch andere (unterschiedliche) Vektoren beschrieben. Du kannst unendlich viele unterschiedliche Punkte auf die Oberfläche der Kugel legen und bekommst unendlich viele unterschiedliche "Normalen".
Unendlich ist nun halt ein bischen viel. Also musst du diskretisieren. Und damit stellt sich die Frage: wie genau soll die Beschreibung deiner Fläche (ich bleibe mal bei meiner Kugel) werden?
Man kann z.B. die Oberfläche der Kugel in Dreicke aufteilen. Das nennt man Triangulisierung. Je nach Größe der Kantenlänge der Dreiecke wird die Kugel mehr oder weniger genau beschrieben. Kleine Kantenlängen = viele Dreiecke = genaue Beschreibung der Oberfläche. Die Dreicke selbst können nun mathematisch ganz einfach beschreiben werden. Das gleiche gilt für ihre Lage und Aussrichtung im Raum.
Bei einer Kugel ist das natürlich Blödsinn, da deren Oberfläche  mathematisch einfacher zu Beschreiben ist als die ganzen Dreiecke. Bei komplexen Geometrien ist das allerdings anders.
Die Darstellung von CGR-Files beruht auf Triangulisierung (wenn du den cgr mit der Maus anwählst, sieht man die Dreiecke).

Die Frage ist also immer noch: was genau hast du vor?

Gruss
TomTom

------------------
tomtom1972

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

KlausJ
Mitglied



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

Beiträge: 1336
Registriert: 17.03.2003

CATIA V4.2.4 Ref 2
CATIA V5R16SP7
AIX 5.3
Windows 2000 und XP

erstellt am: 30. Nov. 2006 15:22    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 tgeier 10 Unities + Antwort hilfreich

Mit anderen Worten : Mach Dir zuerst mal den Unterschied zwischen Fläche und Ebene klar !!!!!

------------------
Nichts ändern ist langweilig !!

Klaus

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 30. Nov. 2006 15: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 tgeier 10 Unities + Antwort hilfreich

Hallo,

so könnte man es auch direkt formulieren. Wobei es - wenn wir jetzt schon bei Definitionen sind - auch noch einen Unterschied zwischen einer planaren Fläche und einer Ebene gibt. 

Gruss
TomTom

------------------
tomtom1972

[Diese Nachricht wurde von tomtom1972 am 30. Nov. 2006 editiert.]

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 30. Nov. 2006 23: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

Hallo,

also mir ist das schon klar das z.B. eine Kugel mit 'unendlich' vielen Normalenvektoren beschrieben werden kann.

Was ich lediglich suche sind die Normalenvektoren. Wo ich diese also im Code rauslesen kann, bzw ob ich mir die irgendwie ausgeben lassen kann.

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 02. Dez. 2006 15:35    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 tgeier 10 Unities + Antwort hilfreich

Hallo,

also noch mal: die Normale durch den Schwerpunkt einer planaren Fläche (d.h. einer Fläche, die keiner Krümmung aufweisst) kannst du wie vorher beschieben mit Hilfe des .Measurable.GetPlane auslesen (da sie eindeutig ist !!!) ohne irgendwie neue Geometrie zu erzeugen.
Das funktioniert manuell genauso, indem du mit dem "Messschieber" auf die Fläche klickst.

Wenn du eine gekrümmte Fläche hast, geht das nicht. Da gibst nämlich keinen eindeutigen Normalenvektor.

Dann musst du
1.) einen (oder wegen mir mehrere) Punkte auf der gekrümmten Fläche erzeugen; am einfachsten du erzeugst den Schwerpunkt, auch wenn der nicht auf der Fläche liegt
2.) dann erzeugst du eine Normale (durch den Punkt) zur Fläche
3.) dann liest du die Normale aus
4.) dann hast du das, was du scheinbar sucht.

Nur wie gesagt lässt die Normale noch lange keinen Rückschluss auf die Fläche selbst zu.

Die Normlenvektoren sind auf jeden Fall nirgenswo in der Fläche (oder sonstwo) hinterlegt, so das du diese finden bzw. auslesen könntest. Wie soll den das auch gehen? Wenn dir klar ist, das es bzg. auf eine gekrümmte Fläche unendlich viele Normalenvektoren gibt müsste dir doch eigentlich auch klar sein, das die nicht irgenwo "gespeichert" sein können? Wie sollen irgendwo unendlich viele Vektoren gespeichert sein, sodass du dir diese ausgeben lassen kannst? Es gibt jetzt zwar Windows VISTA mit 64 bit Achitektur, aber selbst das dürfte nicht genügen ...

Mir ist immer noch nicht klar, was du eigentlich vor hast.
Und solange du das für dich behältst wird dir wohl auch keiner bei der Suche nach deinen Normalenvektoren helfen können.

Trotzdem weiterhin viel Erfolg
Gruss TomTom

------------------
tomtom1972

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

takushi
Mitglied
Entwicklungsingenieur


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

Beiträge: 66
Registriert: 11.07.2003

erstellt am: 04. Dez. 2006 08:52    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 tgeier 10 Unities + Antwort hilfreich

Hallo,

ich glaube mit dem Normalenvektor ist bei genanntem Problem eher die Orientierung der Fläche gemeint, das heisst, auf welcher Seite der Flächen die Normalenvektoren per (User)-Definition positiv angezogen werden sollen. Und diese Orientierung, denke ich auch, müsste doch irgendwo auslesbar sein.

Ich könnte mir vorstellen, der Zweck ist dabei in einer automatisierten Vereinheitlichung der Normalenvektor-Ausrichtung einer Menge von Flächen zu suchen, um hinterher ein Volumen/Join bilden zu können.

Schöne Grüsse

takushi

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 04. Dez. 2006 09:02    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 tgeier 10 Unities + Antwort hilfreich

Hallo Tobi,

ist das dein Problem?

TomTom

------------------
tomtom1972

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 05. Dez. 2006 15:40    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,


 

Zitat:
Original erstellt von tomtom1972:

Wenn du dein Volumen in eine Selection schiebst und ein Search (Topology.CGMFace) durchführst, erhälst du über das jeweilige Selection.Item(n).Reference einen Verweis zu allen Teilflächen der Oberfläche deines Volumens (also der BReps). Über den Namen des Verweises (Reference.Name) kannst du dir mit .CreateReferenceFromName eine "richtige" Referenz erzeugen, welche die Grundlage einer Messung bildet: ...Measureable.getPlane gibt dir ein array zurück, welches u.a. die Vektoren der Flächennormalen enthält, sofern die Fläche planar ist.


also das hier ist glaube ich ziemlich genau das was ich gesucht habe.
komme allerdings nicht so richtig klar mit der Ausführung, da ich noch recht wenig Erfahrung habe mit Programmierung.

Vielleicht könntest du mir noch etwas genauer erklären wie ich das hin bekomme. Bei mir funktioniert das irgendwie nicht so recht.

Was meinst du z.B. mit:
" Wenn du dein Volumen in eine Selection schiebst und ein Search (Topology.CGMFace) durchführst, erhälst du über das jeweilige Selection.Item(n).Reference einen Verweis zu allen Teilflächen der Oberfläche deines Volumens (also der BReps). ?

Wie soll ich das genau machen?

Bin etwas überfordert mit den Anweisungen.


Nehmen wir mal an ich möchte mir den Normalenvektor durch einen beliebigen Punkt auf einer planaren Fläche ausgeben lassen (müssten ja alle die selbe richtung haben, daher reicht einer).

Wie würde ich das schreiben?


[Diese Nachricht wurde von tgeier am 05. Dez. 2006 editiert.]

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 05. Dez. 2006 16: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 Nur für tgeier 10 Unities + Antwort hilfreich

Hallo

Kannst Du vielleicht mal eine Beispielfläche hochladen?

Gruß Andi

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 06. Dez. 2006 09:40    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 tgeier 10 Unities + Antwort hilfreich

Hallo tobi,

öffne ein Part und erzeuge ein pad. Einfach einen Würfel. Sonst nix.
Der Würfel hat 6 Flächen. Die lesen wir jetzt mal aus. Dazu das Volumen selektieren und das Script starten.
Die MsgBoxes geben dir folgendes aus:
1) Namen des BReps (also der Teilfläche)
2) Ursprungskoordinate des Vektors (ist hier irgend ein Eckpunkt der Teilfläche
3) Der Vektor (die Normale zu der Fläche) selbst = first direction
4) Ein zweiter Vektor, der in diesem Fall die Rotation der Fläche um den Normalenvektor angibt = second direction

Im Script ist kein Err.Handling eingebaut, d.h.
a) Vor Scriptstart Vol selektieren
b) nur planare Flächen vorhanden

Hoffe das veranschaulicht die grundsätzliche Vorgehensweise.

Gruss TomTom

Sub CATMain()

Set oDoc = Catia.ActiveDocument
Set oProd = oDoc.Product
Set oSelection = oDoc.Selection
Set TheSPAWorkbench = oDoc.GetWorkbench("SPAWorkbench")

oSelection.Search ("Topology.CGMFace,sel")

Dim aPlane()
ReDim aPlane(8)

MsgBox oSelection.Count, 64, "No of BReps"

For i = 1 To oSelection.Count
  Set oRef = oSelection.Item(i).Reference
  Set oReference = oProd.CreateReferenceFromName(oProd.PartNumber & "/!" & oRef.Name)
  Set TheMeasurable = TheSPAWorkbench.GetMeasurable(oReference)
  TheMeasurable.GetPlane aPlane
  MsgBox oReference.DisplayName, 64, "Name of the " & i & ". Reference / Brep"
  MsgBox "X: " & aPlane(0) & vbLf & "Y: " & aPlane(1) & vbLf & "Z: " & aPlane(2), 64, "Coordinates of the " & i & ". origin"
  MsgBox "X-Dir: " & aPlane(3) & vbLf & "Y-Dir: " & aPlane(4) & vbLf & "Z-Dir: " & aPlane(5), 64, "Vector of the first direction of the " & i & ". plane"
  MsgBox "X-Dir: " & aPlane(6) & vbLf & "Y-Dir: " & aPlane(7) & vbLf & "Z-Dir: " & aPlane(8), 64, "Vector of the second direction of the " & i & ". plane"
Next

End Sub

------------------
tomtom1972

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 06. Dez. 2006 13:42    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

Wow, Super !!!

Vielen Dank TomTom.  Funktioniert super!


Nun hab ich jedoch noch eine kleine Erweiterung.
Die Vektoren ausgeben lassen ist echt klasse. Wäre es jedoch weiterhin möglich diese Vektoren in einer Funktion zu speichern? oder alle auf zu addieren und ein 'Gesamtvektor' auszugeben?

Ist das irgendwie möglich?
Hätte da jemand eine Idee?

Bin wie gesagt leider noch nicht so eingearbeitet in die Programmierung 

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 06. Dez. 2006 14:43    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 tgeier 10 Unities + Antwort hilfreich

Hallo,

Da stellt sich mir dann wieder zuerst die Frage, was du eigentlich vor hast?
Die ausgelesen Vektoranteile sind die Richtungsbeschreibung eines Vektors, deren Wert immer zwischen -1 und 1 liegt, der Vektor sebst hat immer die Länge 1. Die Richtungsanteile zu Addieren ist eine Kleinigkeit.

Nochmal zur Erklärung:
Mit
TheMeasurable.GetPlane aPlane
wird eine Flaeche/Plane ausgemessen, indem ein Array (Feld) mit der entsprechenden Info befüllt wird. Das Array besthet aus:

aPlane(0) = X Coordinate of the origin
aPlane(1) = Y Coordinate of the origin
aPlane(2) = Z Coordinate of the origin
aPlane(3) = X-Value of the Vector of the first direction of the plane
aPlane(4) = Y-Value of the Vector of the first direction of the plane
aPlane(5) = Z-Value of the Vector of the first direction of the plane
aPlane(6) = X-Value of the Vector of the second direction of the plane
aPlane(7) = Y-Value of the Vector of the second direction of the plane
aPlane(8) = Z-Value of the Vector of the second direction of the plane

Die Werte, die dich interessieren (die den Normalenvektor beschreiben) sind wie bereits gesagt aPlane(3), aPlane(4), aPlane(5)

Also dann jetzt so (ohne die ganzen MsgBoxes):

Sub CATMain()

Set oDoc = Catia.ActiveDocument
Set oProd = oDoc.Product
Set oSelection = oDoc.Selection
Set TheSPAWorkbench = oDoc.GetWorkbench("SPAWorkbench")

oSelection.Search ("Topology.CGMFace,sel")

Dim aPlane()
ReDim aPlane(8)

Dim aGesNormale
ReDim aGesNormale(2)

For i = 1 To oSelection.Count
  Set oRef = oSelection.Item(i).Reference
  Set oReference = oProd.CreateReferenceFromName(oProd.PartNumber & "/!" & oRef.Name)
  Set TheMeasurable = TheSPAWorkbench.GetMeasurable(oReference)
  TheMeasurable.GetPlane aPlane
  For j = 0 to UBound(aGesNormale)
      aGesNormale(j) = aGesNormale(j) + aPlane(j+3)
  Next
Next

MsgBox "X-Dir: " & aGesNormale(0) & vbLf & "Y-Dir: " & aGesNormale(1) & vbLf & "Z-Dir: " & aGesNormale(2), 64, "The Result Vector"

End Sub

Gruss TomTom

------------------
tomtom1972

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 06. Dez. 2006 16:14    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

Zitat:
Original erstellt von tomtom1972:

öffne ein Part und erzeuge ein pad. Einfach einen Würfel. Sonst nix.
Der Würfel hat 6 Flächen. Die lesen wir jetzt mal aus. Dazu das Volumen selektieren und das Script starten.
Die MsgBoxes geben dir folgendes aus:
1) Namen des BReps (also der Teilfläche)
2) Ursprungskoordinate des Vektors (ist hier irgend ein Eckpunkt der Teilfläche
3) Der Vektor (die Normale zu der Fläche) selbst = first direction
4) Ein zweiter Vektor, der in diesem Fall die Rotation der Fläche um den Normalenvektor angibt = second direction


nochmal kurz zu dem vorigen Beitrag:

also die Message Box gibt mir zu jeder Fläche nun 2 Vektoren aus.
Diese sind meiner Meinung nach jedoch die Richtungsvektoren.
Diese muss man also noch mit Hilfe des Kreuzproduktes multiplizieren und dann hat man die Normalenvektoren.


Wenn ich nun diese 6 (im Fall des Würfels) Normalenvektoren habe, und diese aufaddieren mittels Vektoraddition, müssten diese Vetoren sich doch quasi aufheben und die Summe zu Null werden.

Das war so mein Gedanke, darauf wollte ich hinaus.

Nun fehlt mir also nur noch das Vektorprodukt und die Summation am Ende.
Gibt es einen Befehl für das Kreuzprodukt? oder muss ich mir diesen selbst zusammen basteln?

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 07. Dez. 2006 08:31    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 tgeier 10 Unities + Antwort hilfreich


Pic1.gif

 
Hallo,

Du hast recht mit deiner Vermutung. Den Normalenvektor muss man erst noch ausrechnen (das Kreuzprodukt). Das zu Berechnen ist einfach ein bischen Mathe. Dafür gibts keine eigene Funktion. Siehe unten (Script). Das Script erzeugt zur Veranschaulichung mal die Vektoren (als Linien). Siehe auch Screenshot im Anhang.

Allerdings ist die Schleife nicht mehr drin. Wird also nur für die erste Fläche durchgeführt. Mit einer Fläche wirds auch anschaulicher wie bei einem Würfel. Part auf und eine planare Fläche erzeugen (am besten nicht rechteckig) die im Raum gekippt ist. Fläche auswählen, Script starten.

Gruss
TomTom


Sub CATMain()

Set oDoc = Catia.ActiveDocument
Set oProd = oDoc.Product

Set oSelection = oDoc.Selection
oSelection.Search ("Topology.CGMFace,sel")

Set TheSPAWorkbench = oDoc.GetWorkbench("SPAWorkbench")

Set oHBs = oDoc.Part.HybridBodies
Set oHSF = oDoc.Part.HybridShapeFactory

Set oHB = oHBs.Add()

Dim aPlane()
ReDim aPlane(8)

Set oRef = oSelection.Item(1).Reference
Set oReference = oProd.CreateReferenceFromName(oProd.PartNumber & "/!" & oRef.Name)

Set TheMeasurable = TheSPAWorkbench.GetMeasurable(oReference)
TheMeasurable.GetPlane aPlane

'create Origin
Dim oPoint
FUNC_CreatePt oDoc, oHSF, oHB, oPoint, aPlane(0), aPlane(1), aPlane(2)
oPoint.Name = "Origin"

Set oRefPoint = oDoc.Part.CreateReferenceFromObject(oPoint)

'create first Direction
Dim oLine1
FUNC_CreateLinePtDir oDoc, oHSF, oHB, oLine1, oPoint, aPlane(3), aPlane(4), aPlane(5)
oLine1.Name = "First_Direction"

'create second Direction
Dim oLine2
FUNC_CreateLinePtDir oDoc, oHSF, oHB, oLine2, oPoint, aPlane(6), aPlane(7), aPlane(8)
oLine2.Name = "Second_Direction"

'crossproduct
Dim aKreuzProd
ReDim aKreuzProd(2)
aKreuzProd(0) = aPlane(4)*aPlane(8) - aPlane(5)*aPlane(7)
aKreuzProd(1) = aPlane(5)*aPlane(6) - aPlane(3)*aPlane(8)
aKreuzProd(2) = aPlane(3)*aPlane(7) - aPlane(4)*aPlane(6)

'create crossproduct/Normalvector
Dim oNorm
FUNC_CreateLinePtDir oDoc, oHSF, oHB, oNorm, oPoint, aKreuzProd(0),aKreuzProd(1),aKreuzProd(2)
oNorm.Name = "Normal_Vector"

End Sub

Function FUNC_CreatePt(oDoc, oHSF, oHB, oPoint,  iCord1, iCor2, iCord3)
  Set oPoint = oHSF.AddNewPointCoord(iCord1, iCord2, iCord3)
  oHB.AppendHybridShape oPoint
  oDoc.Part.InWorkObject =  oPoint
  oDoc.Part.Update
End Function

Function FUNC_CreateLinePtDir(oDoc, oHSF, oHB, oLine, oPoint,  iDir1, iDir2, iDir3)
  Set oDir = oHSF.AddNewDirectionByCoord(iDir1, iDir2, iDir3)
  Set oLine = oHSF.AddNewLinePtDir(oPoint, oDir, 0.000000, 20.000000, False)
  oHB.AppendHybridShape oLine
  oDoc.Part.InWorkObject =  oLine
  oDoc.Part.Update
End Function

------------------
tomtom1972

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 07. Dez. 2006 10:20    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

hab auch selbst schon angefangen zu probieren das kreuzprodukt zu berechnen, geht bei mir leider nicht ganz so flott.

aber werd mal noch ein wenig weiter probieren und auch dein skript mal testen


Nochmals Vielen Dank für deine Mühen.

Muss jetzt selbst mal ein wenig rumprobieren.


Gruß  Tobi

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 13. Dez. 2006 17:24    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,

hab mir nun den code soweit zusammen gebastelt aus TomTom's Vorlagen, dass ich mir die Summe der Normalen ausgeben lasse, welche bei einem Würfel z.B. '0' sein müsste. Bei mir kommt jedoch nicht '0' raus, sondern als gesamtnormalenvektor kommt (0,0,2) für den Würfel.
Und zwar ist das Problem, dass 2 meiner Normalenvektoren in die gleiche Richtung zeigen, was laut Definition so nicht sein sollte.

Also die Idee von 'takushi' war gar nicht so schlecht.

Weiss jemand wie die Ausrichtung der Normalen hier definiert ist? bzw. wie man sich diese ausgeben lassen könnte oder wo die berechnet wird?


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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 05. Jan. 2007 16:52    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,

also das mit dem Auslesen und Berechnen der Normalenvektoren funktioniert jetzt soweit. Allerdings gibt's dabei noch ein kleines Problem.
Und zwar bekomm ich für z.B. einen Würfel, bei dem die Vektoraddition aller Flächennormalen auf das Ergebnis '0' führen müsste nicht Null heraus, sondern meistens sowas wie (0 2 0) oder (2 0 0) als Vektor.

Könnte das evtl mit der Orientierung der Flächen zusammenhängen?
Denn von den Normalenvektoren die bei der Berechnung herauskommen zeigen immer 2 in die gleiche Richtung und heben sich somit nicht gegenseitig auf, sondern addieren sich zu '2'.

Oder könnte es mit der Reihenfolge der Wahl der Richtungsvektoren einer Ebene zusammenhängen? (denn a x b = - b x a)

Kennt vielleicht jemand die Kriterien bzw. Regeln nach denen das Programm bei der Auswahl der Flächen oder Richtungsvektoren vorgeht?


Evtl liegt das Problem auch beim Auslesen der Flächen.? Weiss jemand wie deren Ursprung festgelegt wird? oder wird einfach willkürlich ein Eckpunkt(im Falle des Würfel) gewählt? Denn die Wahl des Eckpunktes spielt auch eine Rolle bei der Berechnung der Normalen. Vielleicht hat das etwas damit zu tun?

Ausserdem habe ich noch beim Stöbern den Befehl 'GetPlaneNormal' gefunden. Könnte es damit vielleicht fumtionieren oder gibt es einen anderen Befehl der die Normalen ausliest?


Wäre froh um jede Hilfe. Komm irgendwie nicht so recht weiter.  Vielen Dank im Vorraus


Gruß  Tobi

[Diese Nachricht wurde von tgeier am 10. Jan. 2007 editiert.]

[Diese Nachricht wurde von tgeier am 10. Jan. 2007 editiert.]

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

tgeier
Mitglied



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

Beiträge: 20
Registriert: 14.03.2006

erstellt am: 07. Feb. 2007 14:40    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,

ist es möglich (mit Hilfe eines Makro) herauszufinden in welcher Ebene die Skizze erstellt wurde?
Denn genau die beiden Normalenvektoren in dieser und der (wegen Block) dazu parallelen Ebene zeigen immer in die gleiche Richtung.

wenn man rausfinden könnte in welcher Ebene der Block erstellt wurde, könnte man das dann so hintüfteln, dass man einen der beiden Vektoren dreht un dsomit zum richtigen Ergebnis kommt, hoffe ich.

Hoffe das mir damit jemand behilflich sein kann.


Gruß  Tobi

[Diese Nachricht wurde von tgeier am 07. Feb. 2007 editiert.]

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