| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation: verbesserte Effizienz durch optimierte Bedienoberfläche, eine Pressemitteilung
|
Autor
|
Thema: Measurable - Maximum Distance / Selection Mode (3646 mal gelesen)
|
roccat Mitglied Konstrukteur
 
 Beiträge: 175 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 01. Sep. 2010 09:31 <-- editieren / zitieren --> Unities abgeben:         
Hallo, hoffendlich könnt ihr mir dabei helfen. Ich möchte mittels "SPAWorkbench/Measurable" einen Abstand Messen. Bisher habe ich immer die "GetMinimumDistance" benötigt um den kleinsten Abstand zu messen. Nun bräuchte ich aber mal den größten Abstand und möchte dabei die beiden zu messenden Elemente (Kurve, Kreisbogen, Linie) nur in der "Selection mode" = "Any Geometry" messen da es bei "Infinite" probleme gibt(siehe Anhang). Mir fehlt eigendlich bloß der Befehl für die "Maximum Distance" und wie ich den Modus der Selection wählen kann. Bisher hatte ich das immer so gemacht: Function Messen(MyCrv As Object, MyLine As Object) As Double Dim TheSPAWorkbench As SPAWorkbench Dim TheMeasurable 'As Measurable Dim dMess As Double 'Dokuments holen Set MyDocument = CATIA.ActiveDocument Set MyPart = MyDocument.Part 'Messe Abstand If Not MyCrv Is Nothing Or Not MyLine Is Nothing Then Set TheSPAWorkbench = MyDocument.GetWorkbench("SPAWorkbench") Set TheMeasurable = TheSPAWorkbench.GetMeasurable(MyCrv) Messen = TheMeasurable.GetMinimumDistance(MyLine) End If End Function THX Mario [Diese Nachricht wurde von roccat am 01. Sep. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
   
 Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 03. Sep. 2010 10:01 <-- editieren / zitieren --> Unities abgeben:          Nur für roccat
Kann Dir leider keine Lösung präsentieren, aber Denkanstöße: Ist echt nicht trivial  Also entweder es gibt ein NewTopologicalObject, was das kann oder ich würde es über Extrempunkte versuchen und dann deren Abstand messen. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
 
 Beiträge: 175 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 03. Sep. 2010 12:44 <-- editieren / zitieren --> Unities abgeben:         
Hallo Henry, danke für deine Antwort. Also ich habe noch mal das Forum nach allem was mit Measure zu tun hat durchsucht und bin auf einen Beitrag gestoßen mit dem Fazit das es für VBA nicht geht. Deinen Vorschlag mit Extrempunkten hatte ich händisch auch schon hin und her probiert und bin auf keinen grünen Zweig gekommen. Evtl. mal kurz zur Erklärung worum es mir geht: Ich möchte eine komplizierte 3D kurve mit linien und Kreise vereinfachen/nachbauen die sich innerhalb einer zugelassen Abweichung befinden. Ich wollte dazu eine Punkt zu Punkt-linie solange der Kurve lang laufen lassen bis die "MaximumDistanz" auserhalb meiner Toleranz liegt und dann mit einen 3Punkte kreis weitermachen... ...soweit so gut, da mir aber jetzt die MaximumDistanz fehlt habe jetzt folgendes Versucht: Ich erzeuge am Startpunkt der Kurve einen Kreis mit dem Radius der Toleranz und erzeuge eine FlächenSweep entlang der Kurve, damit versuche ich immer meine Linien und Kreise zu splitten, geht der Split nicht liege ich innerhalb meiner Toleranz. Ich bin noch nicht ganz fertig, mir fehlen noch die Kreise aber für einen reinen Linien verbund funktioniert´s erstmal. @Henry, nochmal danke für deine Ideen und sollte doch noch jemand die "MaximumDistanz" - Messung finden, Ich würd´s trotzdem gern wissen wollen. mfG Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
   
 Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 03. Sep. 2010 15:33 <-- editieren / zitieren --> Unities abgeben:          Nur für roccat
Das Problem, was ich hier sehe ist, dass die NewTopologicalObjects nicht dokumentiert sind.  Die SPAWorkbench gibt einem ja quasi nix mehr aus außer TheMeasurable, der Rest ist alles nach NewTopologicalObject gewnadert. Ich vermute mal auch, dass sich dort das MaximumDistance unter NewTopologicalObject("Distance") versteckt, aber das sind alles nur Mutmaßungen.  Und ja, im CAA ist das nicht so problematisch.  ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
 
 Beiträge: 175 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 06. Sep. 2010 13:57 <-- editieren / zitieren --> Unities abgeben:         
Hallo Henry, ich hab da wohl bisschen eine Bildungslücke. Die "NewTopologicalObject" sind wohl von DS nachträglich hinzugefügte Methoden ohne klare Zuordung, oder ist das was anderes? Und wie kann ich auf diese zu greifen? (Hab Google/Catia-Doku/Forum nichts konkretes finden können) THX mfG Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
   
 Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 08. Sep. 2010 11:23 <-- editieren / zitieren --> Unities abgeben:          Nur für roccat
Hallo Mario, ja die sind nachträglich hinzugekommen als DS ihre eigenen Funktionen nicht mehr reichten. Die sind aber daher leider auch nahezu gar nicht dokumentiert. Es gibt nur wenige Hinweise darauf in der Doku, wie wenn Du Dir die Klasse SPAWorkbench anschaust, wo drin steht, Du sollst lieber die verwenden. Die NewTopoObjects gibts etwa seit R17 und sind primär für CAA, aber eben auch mit API versehen. Sind aber auch im CAA nicht dokumentiert.  Erreichen tut man diese über LateBinding, aber man kann auch entsprechende Verweise/Referenzen im VB setzen. Da es nicht dokumentiert ist, habe ich aber leider auch keine Ahnung, vermute darin aber die Lösung.  ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
   
 Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 08. Sep. 2010 18:18 <-- editieren / zitieren --> Unities abgeben:          Nur für roccat
Hallo roccat, such mal in der V5Automation.chm nach "GetTechnologicalObject". Dann solltest Du diverse Hinweise darauf erhalten. mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
 
 Beiträge: 175 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 09. Sep. 2010 08:36 <-- editieren / zitieren --> Unities abgeben:         
Hallo Lusilnie, danke für deine Antwort. Ich habe das bereits gelesen und mit beiden Sachen "SPAWorkbench" und den "GetTechnologigalObject" rumprobiert ich komme bei beiden auf selbe Ergebnis nur das ich eben bei den "GetTechnologigalObject" über das Product dort hinkomme. Aber irgendwie will´s bei beiden Varianten die MaximumDistance nicht messen. ...sehr Seltsam... aber Danke für deinen Hinweis mfG Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |