Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Middelpunkt / Center mathematisch bestimmen

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:  Middelpunkt / Center mathematisch bestimmen (3370 mal gelesen)
HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 17. Aug. 2010 15:44    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 hätte ein komisches Problem, eigentlich im CAA, aber ihr müsst ja ähnliche Berechnungen anstellen. 

Zunächst einmal:
Ich möchte keine greifbare Geometrie erzeugen sondern nur rein visuelle und auch keine Features. Herausforderung ist nämlich so ne Art Richtungspfeile zu errichten, wie ihr sie ja auch von CATIA gewohnt seid. Diese sind also nur für den Anwender temporär wichtig und daher wollt' ich sie auch nur rein visuell darstellen.

Dann mal zum eigentlichen Problem:
Dafür benötige ich den Mittelpunkt einer beliebigen Fläche, die der Anwender angeklickt hat.
Ist die Fläche ein CATBody bekomme ich relativ gute Ergebnisse mit der EstimateCenter() Methode.
Allerdings sind einige Flächen eben nur vom Typ CATSurface, bei diesen hole ich mir die Limits und von denen dann die Begrenzungskoordinaten (ne Art Boundingbox) über GetExtremities().
Dann errechne ich mir einen Punkt auf halber U und V Strecke über EvalPoint() vom CATSurface. Damit bekomme ich zumindest verwertbare Ergebnisse, auch wenn der Punkt nicht immer auf der Fläche liegt, so wäre er zumindest mit einer Projektion nahe an der Mitte.
Jetzt gibt es aber auch planare Flächen (eigentlich trivial) aber genau die machen mich einfach fertig. Das besonders schlimme: Nicht alle sondern nur einige wenige. Mittlerweile aber auch schon einige gekrümmte. Wenn ich diese nach den Limits frage verhalten sie sich nämlich wie Ebenen und haben diese Limits:

lowParam {_U_param=-10000000.000000000 _V_param=-10000000.000000000 _U_number=1 ...} CATSurParam
highParam {_U_param=10000000.000000000 _V_param=10000000.000000000 _U_number=1 ...} CATSurParam

Dadurch ist mein Mittelpunkt natürlich genau auf dem Ursprung, was völlig falsch ist.

Hättet ihr Ideen zu meiner Problemstellung oder warum sich manche Flächen von ihren Limits wie Ebenen verhalten?
Wie würdet ihr den Mittelpunkt berechnen?

Anmerkung: Ich möchte keine CATIA-Features erzeugen.

------------------
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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 17. Aug. 2010 18: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 HoBLila 10 Unities + Antwort hilfreich

Hallo HoBlila,

vorweg: ich habe keine Ahnung von CAA. Warum die Flächen sich so komisch verhalten weiß ich auch nicht. Mir fällt dazu ein, dass es auf der Skript-Seite die Funktion Measurable gibt, die mit GETCOG den Flächenschwerpunkt berechnet. In CAA wird es dann solch eine Berechnung sicherlich auch geben. Vielleicht kannst Du damit den Punkt bestimmen, den Du brauchst.

------------------
-----------

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

roccat
Mitglied
Konstrukteur


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

Beiträge: 172
Registriert: 19.02.2010

WinXP/Win7
Office XP/2007
Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR
VB .Net 2010

erstellt am: 18. Aug. 2010 16:46    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 HoBLila 10 Unities + Antwort hilfreich

Hallo Henry,

ich würde noir333 zustimmen. Kannst das ja mal damit versuchen.
Die Koordinaten sind aber bezogen auf den Partursprung das macht evtl. eine Umrechnung auf ein anderen Bezug erforderlich.

Sub Messen()
    Dim MyDocument          As Document
    Dim MyPart              As Part
    Dim TheSPAWorkbench     As SPAWorkbench
    Dim TheMeasurable        'As Measurable
    Dim MySurface           As Object
    Dim MyPoint(2)

    'Beispielflaeche holen
    Set MyDocument = CATIA.ActiveDocument
    Set MyPart = MyDocument.Part
    Set MySurface = MyPart.FindObjectByName("BeispielFlaeche")

   

    'Messe Flaeche
    If Not MySurface Is Nothing Then
        Set TheSPAWorkbench = MyDocument.GetWorkbench("SPAWorkbench")
        Set TheMeasurable = TheSPAWorkbench.GetMeasurable(MySurface)
        TheMeasurable.GetCOG MyPoint
    End If
   
    Debug.Print "Punkt X:" & MyPoint(0) & " Y:" & MyPoint(1) & " Z:" & MyPoint(2)

End Sub

mfG
Mario

[Diese Nachricht wurde von roccat am 18. Aug. 2010 editiert.]

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 18. Aug. 2010 21:17    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

*omg* bin ich doof, da sehe ich den Wald vor lauter Bäumen nicht, zumal ich die Klasse schon geschrieben habe... 

Werd's dann mal versuchen und euch Rückmeldung geben, wenn's klappt und ich den Schwerpuntk dann projiziere wär's echt meine Lösung.

Klingt jedenfalls schon einmal super.

------------------
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

AndiKrue
Mitglied
Berater


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

Beiträge: 72
Registriert: 04.12.2008

Windows XP Prof x64 Edition
Intel Xeon W3520 @ 2.67 GHz
8 GB RAM,
Nvidia Quadro FX 1800
CATIA V5R19

erstellt am: 19. Aug. 2010 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 HoBLila 10 Unities + Antwort hilfreich

der projizierte schwerpunkt landet knapp neben der stelle, wo catia den richtungspfeil hinsetzt, aber ist glaub ich zu verkraften. hatte auch schon mal in vba versucht, den richtungspfeil selbst darzustellen. als geometrie.. naja ging so einigermaßen. aber beim rein- und rauszoomen müsste der richtungspfeil immer gleich groß bleiben, das habe ich dann nicht hinbekommen.

[Diese Nachricht wurde von AndiKrue am 19. Aug. 2010 editiert.]

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 19. Aug. 2010 11: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

Dass der Richtungspfeil gleichgroß bleibt, das habe ich schon. 
Mit der Projektion ist er aber definitiv nicht nahe an dem CATIA-Punkt, denn der Schwerpunkt ist bei unseren Flächen oft außerhalb der jeweiligen Fläche, daher erwische ich logischer Weise nur eine Kante, aber das wäre erst einmal okay, da der Punkt auf der Kante nahe der Mitte ist. 

So, also ich versuch jetzt mal das Measure im CAA zu bauen.

------------------
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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 19. Aug. 2010 11: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

Measure funzt nicht auf meine planre Fläche *heul*.

Die Idee war sehr gut, aber von meiner Problemfläche bekomme ich leider kein Measurable-Interface, von den ohne hin funktionierenden dafür schon.

Interessant wäre mal zu erfahren wie Dassault den Mittelpunkt errechnet, wenn man z.B. ein PointOnSurface machen möchte...

------------------
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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 19. Aug. 2010 12: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 HoBLila 10 Unities + Antwort hilfreich

Hallo Henry,

ich nehme an das DSS das über die mathematische Definition einer Fläche (also über deren U und V Parameter) bestimmt. Kommst du da mit CAA nicht ran?

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 19. Aug. 2010 12: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

Doch komme an die U und V ran, die nutze ich ja für meinen Standard-Algorithmus.

Und zwar so:

Code:

CATSurLimits surLimits;
pSurf->/*GetGeometricRep( )->*/GetLimits(surLimits);
CATSurParam lowParam, highParam;
surLimits.GetExtremities(lowParam, highParam);
//CATMathBox mtBoundingBox = pSurf->GetBoundingBox();
// Defines the starting and end parameters relative to the surface limits
double iLambdaU = 0.5;
double iLambdaV = 0.5; //ie middle of relimited surface
CATSurParam SurfaceMidPointParam (iLambdaU,iLambdaV,surLimits);
pSurf->EvalPoint(SurfaceMidPointParam, mtPointCenter); //extract middle point of the surface
pSurf->EvalNormal(SurfaceMidPointParam, mtDirNormal); // extract surface normal at middle point

Problem ist hier eben, dass die Limits falsch sind bei einigen Flächen (vorwiegend planare, aber auch nicht alle) und ich einfach nicht dahinter steige wieso.
Hatte daher auch schon über ein topologisches Extract nachgedacht, aber das baue ich genauso über die Limits auf. :)
Die falschen Limits sind leider so als hätte ich eine Ebene vor mir mit den CATIA üblichen Begrenzern. Daher dachte ich mir

Code:

CATIMeasurablePlane_var spiMeasurePlane = pSurf;

müsste wenigstens ein Interface liefern, mit dem ich dann zwar nix anfangen könnte, aber nicht einmal das geht.

Merkwürdig ist auch, dass ich in der Selection nur CATSurface zulasse, diesen dann aber scheinbar irgendwie doch nicht drin ist. Wobei auf der anderen Seite, es ist ein Objekt im Zeiger drin und das gibt mir eben auch die Limits aus.

Das CATIA-PointOnSurface kann damit umgehen, aber nur wenn ich die Fläche nicht vorher selektiert habe. Selektiere ich die Fläche erst und mache dann PointOnSurface scheint CATIA ähnliche Probleme zu haben. Allerdings wenn ich Erst PointOnSurface sage und dann die Fläche wähle, dann geht's. Also rein interaktiv.

Das dumme ist, dass jede Funktion, von mir, entweder mit CATBody Objekten arbeitet oder mit den Limits. Ein Surface in ein CATBody umwandeln kann ich (das heißt nicht, dass es auch anders geht) aber nur über ein Extract von ::CATTopSkin, der eben die Limits braucht, ein Teufelskreis.  

Aber schon mal vielen Dank, für eure Ideen, waren echt gut!
------------------
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

[Diese Nachricht wurde von HoBLila am 19. Aug. 2010 editiert.]

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

roccat
Mitglied
Konstrukteur


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

Beiträge: 172
Registriert: 19.02.2010

WinXP/Win7
Office XP/2007
Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR
VB .Net 2010

erstellt am: 19. Aug. 2010 13:00    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 HoBLila 10 Unities + Antwort hilfreich

Hallo Henry,

was ist dass genau für eine Fläche die dir Sorgen bereitet?

Ich hab mal bissl rumprobiert und es hat irgendwie immer die Mitte ausgegeben egal ob ich eine planare Surface oder direkt eine Plane als Element genommen habe.

Ist die Fläche offen oder geschlossen also ich meine ein Volume oder hat die Fläche an sich Fehler (Löcher, Twisted...) ist sie kompliziert oder nur ein planares Rechteck?
Was ist die Fläche für ein ObjectTyp oder wie wurde sie erzeugt?

Sehr komisch...

mfG
Mario

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 19. Aug. 2010 13: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


Problemflaeche.png

 
Habe mal ein Bild angehangen.
Könnt von mir aus aber auch das Part haben, ist ja nur was zusammengeschustertes.
Interessant ist hier, das beim zweiten Pad alle Flächen OK sind.
Beim Problempad dagegen die Deckel- und Bodenfläche das Problem bereiten.

Edit: Umlaute sind dumm ^^

------------------
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

[Diese Nachricht wurde von HoBLila am 19. Aug. 2010 editiert.]

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 19. Aug. 2010 13: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 Nur für HoBLila 10 Unities + Antwort hilfreich

Hallo Henry,

lösche doch mal den Text raus und stell das Part hier rein. Wie wurde den der Block erzeugt. Das sieht ja völlig willkürlich aus was CATIA da macht 

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 19. Aug. 2010 13:48    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


Problemflaeche2.png


Start.zip.txt

 
Lol, Daniel,

wie ich sehe hast Du den Glauben noch nicht verloren, dass CATIA rational handelt. 

Habe mal das Part angehängt.
Und auch noch ein Foto, wo man sieht wo die Mittelpunkte errechnet wurden.

Dass ich CATIA nicht benutzen kann, bitte ich zu verzeihen, dafür kommen dabei Konstruktionen raus, wo kein Know-How verloren geht. *g*

------------------
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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 19. Aug. 2010 14:23    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 HoBLila 10 Unities + Antwort hilfreich

Hallo Henry,

also bei mir funktioniert die Fläche die du als böse gekennzeichnet hast einwandfrei wenn ich den COG bestimmen will. Anbei das Script. Das erzeugt gleich einen Punkt mit den Koordinaten die ich auslesen. Da ist dann auch der von CATIA gewohnte Pfeil zu sehen 

Code:
Sub CATMain()

    Dim intDocObj As Document
    Dim intSurfaceObj As Object
    Dim intSPAWBObj As Object
    Dim intSelObj As Object
    Dim intFilter(0)
    Dim intStateStr As String
    Dim intPointCoord(2)
    Dim intPartObj As Part
    Dim intHybBodyObj As HybridBody
    Dim intShapeFacObj As HybridShapeFactory
    Dim intTempPointObj As Point
    Dim intCOGPointObj As Point
    Dim intFaceRefObj As Reference
    Dim intPointRefObj As Reference


    'Beispielflaeche holen
    Set intDocObj = CATIA.ActiveDocument
    Set intPartObj = intDocObj.Part
    Set intSelObj = intDocObj.Selection
   
    intFilter(0) = "Face"
    intStateStr = intSelObj.SelectElement2(intFilter, "Flaeche waehlen", False)
    If intStateStr <> "Normal" Then
        MsgBox "Selection error", vbCritical, "CANCEL"
        Exit Sub
    Else
        Set intSurfaceObj = intSelObj.Item(1).Value
    End If

    'Messe Flaeche
    If Not intSurfaceObj Is Nothing Then
        Set intSPAWBObj = intDocObj.GetWorkbench("SPAWorkbench")
        Set intMeasureAbleObj = intSPAWBObj.GetMeasurable(intSurfaceObj)
        intMeasureAbleObj.GetCOG intPointCoord
    End If
   
    'PUNKT ERSTELLEN
    Set intShapeFacObj = intPartObj.HybridShapeFactory
    Set intPartObj = intDocObj.Part
    Set intHybBodyObj = intPartObj.HybridBodies.Item("MITTELPUNKTE")
    Set intTempPointObj = intShapeFacObj.AddNewPointCoord(intPointCoord(0), intPointCoord(1), intPointCoord(2))
    intHybBodyObj.AppendHybridShape intTempPointObj
    intTempPointObj.Name = "TempPoint"
   
    intPartObj.UpdateObject intTempPointObj

End Sub


------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 19. Aug. 2010 14:32    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

Ja im Skript habe ich damit auch keine Probleme, aber im CAA und komischer Weise eben auch nur bei den einfachen Flächen, das ist ja das was mich wurmt. 

------------------
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


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

Beiträge: 172
Registriert: 19.02.2010

WinXP/Win7
Office XP/2007
Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR
VB .Net 2010

erstellt am: 19. Aug. 2010 14:37    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 HoBLila 10 Unities + Antwort hilfreich

Hallo Henry,

auch wenn Daniel eher war bei mir funktionierts ebenfalls oder habe ich was falsch verstanden es geht ausschließlich um den Mittelpunkt einer Fläche oder?


Mein TestCode:

Sub Messen()
    Dim MyDocument          As Document
    Dim MyPart              As Part
    Dim TheSPAWorkbench     As SPAWorkbench
    Dim TheMeasurable        'As Measurable
    Dim MySurface           As Object
    Dim MyPoint(2)
    Dim MyBody              As Body
    Dim MyHybBody           As HybridBody
    Dim MySelection         'As Selection
    Dim InputObjectType(0)
    Dim MyFactory           As HybridShapeFactory
    Dim My3DPoint           As HybridShapePointCoord
   
    'Beispielflaeche holen
    Set MyDocument = CATIA.ActiveDocument
    Set MyPart = MyDocument.Part
    Set MySelection = MyDocument.Selection
   
    Set MyHybBody = MyPart.HybridBodies.Add()
    MyHybBody.Name = "MittelPunkt"
    Set MyFactory = MyPart.HybridShapeFactory
   
    InputObjectType(0) = "Face"
   
Do
    MySelection.Clear
    Status = MySelection.SelectElement2(InputObjectType, "Flaeche selektieren [ESC=Exit]", False)
    If Status <> "Normal" Then
        Exit Do
    End If
    Set MySurface = MySelection.Item(1).Value
    'Messe Mittelpunkt
    If Not MySurface Is Nothing Then
        Set TheSPAWorkbench = MyDocument.GetWorkbench("SPAWorkbench")
        Set TheMeasurable = TheSPAWorkbench.GetMeasurable(MySurface)
        TheMeasurable.GetCOG MyPoint
    End If
   
    Debug.Print "Punkt X:" & MyPoint(0) & " Y:" & MyPoint(1) & " Z:" & MyPoint(2)
    'Punkt erzeugen
    Set My3DPoint = MyFactory.AddNewPointCoord(MyPoint(0), MyPoint(1), MyPoint(2))
    My3DPoint.Name = "Punkt_X:" & MyPoint(0) & "mm_Y:" & MyPoint(1) & "mm_Z:" & MyPoint(2) & "mm"
    MyHybBody.AppendHybridShape My3DPoint
    MyPart.UpdateObject My3DPoint
  Loop
End Sub

mfG
Mario


EDIT: War mal wieder zu spät, hab jetzt erst gelesen das es ein CAA-Problem ist Sorry.  

[Diese Nachricht wurde von roccat am 19. Aug. 2010 editiert.]

EDIT2: Vorschlag: Mit CAA Script zum Messen starten und Werte zurückgeben.

[Diese Nachricht wurde von roccat am 19. Aug. 2010 editiert.]

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 19. Aug. 2010 14:55    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

ist ja kein Problem.

Hab's ja absichtlich hier gepostet, da ihr ja durchaus Erfahrung habt wie sich CATIA verhält.
Im VB ist das über measure aber in der Tat kein Problem. Da nimmt die SPA-Workbench aber auch jedes Objekt entgegen, im CAA zickt sie da ganz schön rum. 

Im CAA bleibt es mir dagegen unergründlich.

Von daher: Eure Lösung ist absolut korrekt, funzt in meinem CAA aber nicht. 

Vermute nun fast, dass in meiner Selection irgendetwas falsch ist, also dass der User was anderes als ein CATSurface anklicken sollte, mir fällt nur nicht ein was. Face und CATFace habe ich schon probiert, die taugen beide nix im CAA.  CATIMfBiDimResult ist noch gut, da bekomme ich CATBodies von Flächenobjekten.

------------------
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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 19. Aug. 2010 17: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

Yeeeeeehhhhhaaaaaaaaa!!!

Ich habe die Lösung!!!

Und zwar kann ich von der selektierten Fläche über QueryInterface() einen BRep bilden. Dieser BRep enthält einen CATBody, von dem CATBody kann ich mir alle Flächen holen und die erste Fläche nach EstimateCenter() fragen. Und siehe da! Es ist ein Mittelpunkt.

Interessant an dieser Stelle ist aber wenn ich über GetSurface() das Face nach seinem CATSurface frage bekomme ich den gleichen Mist wieder. Scheinbar sind BReps ungeeignet für geometrische Operationen. Und das schöne ist, dass ich über den CATBody auch super projizieren kann.  

Und ich wollte über ::CATTopSkin mein CATSurface über ein Extract in ein CATBody verwandeln...

Edit: Es ist ohne Projektion exakt der Punkt, den CATIA für PointOnCurve als Mitte betrachtet, auch wenn er außerhalb der Fläche liegt. 
Herrlich und das mit so ner einfachen 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

[Diese Nachricht wurde von HoBLila am 19. Aug. 2010 editiert.]

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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 19. Aug. 2010 17: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 Nur für HoBLila 10 Unities + Antwort hilfreich

Hallo HoBLila,

tja, CAA scheint auch nicht immer das gelbe vom Ei zu sein. Ich habe noch einen ganz anderen Vorschlag:

Es geht doch nur darum, an einer Stelle auf der Fläche ein Pfeilchen darzustellen. Warum nicht die XYZ-Koordinaten der Stelle verwenden, wo der Benutzer die Fläche (oder jedes Objekt) selektiert hat?

Im VBA gibt es dafür eine Eigenschaft der Selection. Name habe ich gerade nicht parat, aber das wird es doch wohl auch im CAA geben, oder?

------------------
-----------

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



Techniker (m/w/d) Elektrotechnik mit SPS- Programmierung

Mit unseren innovativen Lösungen bewegen wir nicht nur faszinierende Objekte und Emotionen auf den Showbühnen dieser Welt, sondern auch Ihre Karriere.

Zur Verstärkung unseres Teams suchen wir in Eilenburg ab sofort einen:

Techniker (m?/?w?/?d) Elektrotechnik

Seit Markteinführung der CHAINMASTER-Produkte im Jahr 1994 hat sich unser Unternehmen zu ...

Anzeige ansehenElektrotechnik, Elektronik
HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

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: 19. Aug. 2010 17:57    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

PicingPoint oder so, ja 

Vorschlag ist gut und die Idee hatte ich auch schon, aber der User kann auch im Baum selektieren. 
Wobei die Vorgabe auch ist den Mittelpunkt zu verwenden, aber das könnte man sicher kommunizieren.  Die Normale hätte wahrscheinlich dann auch das selbe Vorgehen erfordert.
Jedenfalls funktioniert es jetzt bis dahin, jetzt kann ich mich mit dem restlichen Gedöns, wie selektierbarer Pfeil und so rumschlagen und dafür ne ordentliche Klasse schreiben.

------------------
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

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