Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Mauszeiger positionieren

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:  Mauszeiger positionieren (1208 mal gelesen)
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: 08. Okt. 2014 11:08    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 Leut',

zwei Fragen zum gleichen Thema:
- lässt sich der Mauszeiger (Cursor) im Drafting per Code an eine vorgegebene Stelle setzen (zB. ActiveView/x,y)?
Das Ergebnis sollte wie bei der Api-Function SetCursorPos sein.

- Oder lässt sich irgendwo erkennen, welchen Teil des Sheets der Viewer gerade darstellt(X,Y,Massstab)?
Dann könnte ich die Cursor-Position selbst umrechnen.

Ich will über SendMessage(WM_RMouseButton,..) oder Ähnliches ein Context-Menü öffnen.

TIA,
Joe

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: 08. Okt. 2014 12: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 joehz 10 Unities + Antwort hilfreich

Servus
Über "GetOrigin" des Viewpoint2D bekommst du die aktuelle Mitte des Bildschirms bezogen auf den Blattursprung. Für das gleiche Objekt gibt es noch die Methode "zoom".
Zusätzlich scheint es noch über "IndicateOrSelectElement2D" der Selektion möglich zu sein die Koordinaten ermitteln zu können.

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: 10. Okt. 2014 14: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

Hallo Bernd,

danke für die schnelle Antwort.

Wenn ich's richtig verstehe, liefert GetOrigin als Ergebnis den Abstand der Viewermitte vom Sheet-Ursprung in mm und im Sheet-Koordinatensystem.

Was ich nicht verstehe, sind die Zoom-Werte. Bei einem Blatt A0/'Fit All In' liegt der Zoom bei 0.0023.
Erwartet hätte ich eher 0.23.

Nachdem ich bislang nicht mit ViewPoint gespielt habe, steh' ich da jetzt auf'm Schlauch.
Um die Pixel/mm auszurechnen, brauch ich einen belastbaren Wert für den Zoom.

Ansonsten:
Der Viewer-Handle lässt sich über kaskadierende FindWindowEx-Aufrufe ermitteln; die Viewer-Fenstergrösse über GetRect ermitteln.
Die Lage des Viewers hab ich somit - und die Grösse passt zu den von Catia ausgegebenen Werten.
Um ohne Zoom zu arbeiten, müsste ich den zu untersuchenden Punkt per SetOrigin in die Mitte schieben und dann per Api den Cursor drauf setzen; anschliessend ein Rechtsklick per Api und das Kontext-Menü öffnet (das klappt schon).
Ich würde halt gerne vermeiden, dass das Blatt hin und her schiesst(kostet alles Zeit).

Tschau,
Joe

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: 11. Okt. 2014 10:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joehz 10 Unities + Antwort hilfreich

Servus
Die verschiedenen Zoomwerte liegen ja um den Faktor 100 auseinander. Vielleicht verrechnet dabei Catia mit verschiedenen Einheiten.
Beim Viewer kannst du auch direkt die Abmessungen in Pixeln auslesen (Height und Width).
Anstatt die Position des Cursors zu berechnen könntest du auch den Cursor Mittig platzieren und über "PutOrigin" den Viewer dorthin zentrieren.

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: 13. Okt. 2014 20:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

Zitat:
Original erstellt von bgrittmann:

Die verschiedenen Zoomwerte liegen ja um den Faktor 100 auseinander. Vielleicht verrechnet dabei Catia mit verschiedenen Einheiten.
Beim Viewer kannst du auch direkt die Abmessungen in Pixeln auslesen (Height und Width).

Ja, eben.
Die Viewer-Abmessungen hab ich schon gefunden.

Zitat:

Anstatt die Position des Cursors zu berechnen könntest du auch den Cursor Mittig platzieren und über "PutOrigin" den Viewer dorthin zentrieren.

Nur ohne Left/Top kann ich die Mitte nicht bestimmen. Deshalb der Akt mit FindWindowEx.

Ich hab noch ein paar Varianten ausprobiert. Ich denk', ich lass es. War eh nur 'Nice to have.'

Um mm/pixel zu ermitteln, müsste ich zwei/drei Indicates per Api in einem bekannten Pixel-Abstand setzen. Danach per GetOrigin die Lage in mm vom Sheet-Ursprung auslesen und umrechnen.
Ausserdem müsste ich bei dem auszuwählenden Text (mit dem Kontextmenü) die AnchorPosition berücksichtigen und die Abmessungen des Textes.
Sonst geht der R-Click ins Leere.

Das geht zwar alles; trotzdem ist die Chose zu un(treff)sicher.

Danke für Deine Hilfe.

Tschau,
Joe

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