Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Kantenlänge auslesen

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
Autor Thema:  Kantenlänge auslesen (1147 mal gelesen)
Antelito
Mitglied



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

Beiträge: 88
Registriert: 27.11.2013

CATIA R24
WIN 10 x64

erstellt am: 09. Jan. 2017 13: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

Hallo Zusammen,

ich nutze aus dem Buch von Hansen das Kochrezept 18 (Bauraum, auch Bounding Box genannt). Hintergrund ist folgender: aus einer Liste von Teilen möchte ich nur die Teile weiter bearbeiten, dessen Bounding Box innerhalb bestimmter Grenzen liegt. Nur weiss ich nicht, wie man die einzelnen Kanten (Länge, Breite und Höhe) automatisch ausliest. Kann mir jemand mit einem Code-Schnipsel weiterhelfen? Der Makro-Recorder von CATIA zeichnet leider nichts auf...

Vielen Dank im vorraus!

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 09. Jan. 2017 14: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 Antelito 10 Unities + Antwort hilfreich

Servus
Was wird mit dem Makro erzeugt? (ich kenne den Code nicht auswendig)
Linien/Ebenen?
Du könntest über die SPA-Workbench (such zB nach GetMeasurable) einen Abstand zwischen Ebene/Punkten messen.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 09. Jan. 2017 16:19    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 Antelito 10 Unities + Antwort hilfreich

Hi Antelito,

in der For/Next-Schleife, Zeilen 47-53, werden die Extrema entlang der zuvor definierten/ermittelten Trägheitsachsen bestimmt.

Innerhalb der nächsten Schleife werden Referenzen auf die Extrema gebildet und anschliessend paarweise der Abstand bestimmt.

Dazu einige Anmerkungen:

- das neu erzeugte (Trägheits-)Achsensystem ist nicht immer systemparallel
- die Referenzen der Extrema kannst auch gegen ein anderes Achsensystem messen und dann entscheiden, ob die Box Deinen Randbedingungen entspricht; sprich: Innerhalb liegt.

Hope it helps,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Antelito
Mitglied



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

Beiträge: 88
Registriert: 27.11.2013

CATIA R24
WIN 10 x64

erstellt am: 12. Jan. 2017 09:01    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,

zunächst einmal Danke für die Antworten. Ich bin mir nicht sicher, ob ich aus urheberrechtlichen Gründen den Quelltext aus dem Buch hier posten darf. Daher werde ich es vorsichtshalber auch nicht tun. Aber um die Frage von bgrittmann zu beantworten: es werden zunächst Extrempunkte ermittelt, dann werden Linien erzeugt um anschließend eine Ebene an den Schnittpunkten der Linien zu erzeugen.

Und ich habe noch eine Frage an joehz:

du sagtest "das neu erzeugte (Trägheits-)Achsensystem ist nicht immer systemparallel". Genau das ist auch mein Hauptproblem: manchmal ist die erzeugte BoundingBox top (im Sinne von: hat die minimalsten Kantenlängen). Manchmal jedoch erzeugt das Makro die BoundingBox schräg und dies hat zur Folge, dass die Box nicht die minimalsten Kantenlängen hat und somit größer ausfällt als tatsächlich nötig.

Gibt es hierzu schon eine Lösung? Wie bekommt man immer ein Systemparalleles Achsensystem definiert?

Danke im vorraus

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 12. Jan. 2017 09:11    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 Antelito 10 Unities + Antwort hilfreich

Servus
Hier verschiedene BoundingBox-Varianten (als PowerCopy). Beim einen kannst du das Referenzachsensystem wählen, beim andern werden die Trägheitsachsen verwendet (je nach dem was gewünscht ist)
ggf musst du dann gar nicht ein Makro verwenden.
Wenn du im Makro eh schon die Extrempunkte hast kannst du ja zwischen den gegenüberliegenden Punkten die Abstände messen (dann nur bestimmte Komponenten auswerten)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 12. Jan. 2017 13:04    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 Antelito 10 Unities + Antwort hilfreich

Hi Antelito,

Zitat:

du sagtest "das neu erzeugte (Trägheits-)Achsensystem ist nicht immer systemparallel". Genau das ist auch mein Hauptproblem: manchmal ist die erzeugte BoundingBox top (im Sinne von: hat die minimalsten Kantenlängen). Manchmal jedoch erzeugt das Makro die BoundingBox schräg und dies hat zur Folge, dass die Box nicht die minimalsten Kantenlängen hat und somit größer ausfällt als tatsächlich nötig.


Das ist auch mein hauptsächlicher Kritikpunkt an der Routine.
Zitat:

Gibt es hierzu schon eine Lösung? Wie bekommt man immer ein Systemparalleles Achsensystem definiert?


Klar. In dem man eines verwendet/erzeugt. :-)

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 12. Jan. 2017 17: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 Antelito 10 Unities + Antwort hilfreich

Hi Antelito,

für ein Achsensystem 1,1,1(rechtsdrehend, systemparallel)
ändere das Makro ab und zwar:

Code:

      Dim directions1(2)
'      Set directions1(0) = hybridShapeFactory1.AddNewDirectionByCoord(Components1(0), Components1(3), Components1(6))
'      Set directions1(1) = hybridShapeFactory1.AddNewDirectionByCoord(Components1(1), Components1(4), Components1(7))
'      Set directions1(2) = hybridShapeFactory1.AddNewDirectionByCoord(Components1(2), Components1(5), Components1(8))
      Set directions1(0) = hybridShapeFactory1.AddNewDirectionByCoord(1, 0, 0)
      Set directions1(1) = hybridShapeFactory1.AddNewDirectionByCoord(0, 1, 0)
      Set directions1(2) = hybridShapeFactory1.AddNewDirectionByCoord(0, 0, 1)

      'Neues Achsensystem im Schwerpunt
      Set axisSystem1 = Part1.AxisSystems.Add()
'      axisSystem1.PutOrigin Gcoord

'      Dim vectorXCoord(2)
'      vectorXCoord(0) = Components1(0)
'      vectorXCoord(1) = Components1(3)
'      vectorXCoord(2) = Components1(6)
'
'      Dim vectorYCoord(2)
'      vectorYCoord(0) = Components1(1)
'      vectorYCoord(1) = Components1(4)
'      vectorYCoord(2) = Components1(7)
'
'      axisSystem1.PutVectors vectorXCoord, vectorYCoord
      'axisSystem1.IsCurrent = 1

      Set reference1 = Part1.CreateReferenceFromObject(UserSel)

      selection1.Clear



Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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



Entwicklungsingenieur Wasserstoffsysteme (m/w/d)

Die X2E System Engineering GmbH ist ein interdisziplinäres Technologieunternehmen, welches mit zwei Geschäftsfeldern am Markt aktiv ist: Im Bereich Engineering bieten wir Entwicklungsdienstleistungen mit Schwerpunkt Soft- und Hardwareentwicklung an. Unter dem Namen X2Energy treten wir als Dienstleister für Energieoptimierung und Photovoltaik auf. Als Teil der wachstumsstarken X2E Unternehmensgruppe ...

Anzeige ansehenEntwicklung
Antelito
Mitglied



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

Beiträge: 88
Registriert: 27.11.2013

CATIA R24
WIN 10 x64

erstellt am: 17. Jan. 2017 08:58    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

Das hat hervorragend geklappt. Vielen Dank!

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