Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Selection Fang möglich

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:  Selection Fang möglich (572 mal gelesen)
Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 19. Mrz. 2015 09: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 zusammen,

mal eine Frage an die Experten. Gibt es die Möglichkeit in CATIA mittels der Selection Klasse einen Rahmen innerhalb einer Zeichnung (mittels zwei Koordinatenpaaren) zu definieren? Alles was innerhalb des Rahmens ist, sollte dann der Selection "zugeordnet" werden.

Hintergrund: Wir haben in bestimmten Zeichnungen ein Firmenlogo, das aus Linien, Polylinien, Punkten, Circles/Curves und Aera Fills besteht - die wiederrum nicht eindeutig benannt sind :-(. Dieses Logo soll gegen eine Bilddatei ausgetauscht werden. Damit das performant läuft wäre es hilfreich nur die entsprechende Geometrie zu löschen. Derzeit lösche ich den gesamten Hintergrund (Geometrie und Aera Fills) und tausche ihn aus. Die Performance ist da natürlich eher suboptimal.

Danke schon mal im voraus.
Gruß
Randle

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: 19. Mrz. 2015 14:50    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 Randle 10 Unities + Antwort hilfreich

Hallo Randle,

geht grundsätzlich schon, zB

Code:

Public Declare Function SetCursorPos Lib "User32.dll" (ByVal X As Integer, ByVal Y As Integer) As Long
'Public Declare Function GetCursorPos Lib "User32.dll" (ByRef lpPoint As Point) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = &H2              ' left button down
Public Const MOUSEEVENTF_LEFTUP = &H4                ' left button up
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20            ' middle button down
Public Const MOUSEEVENTF_MIDDLEUP = &H40              ' middle button up
Public Const MOUSEEVENTF_RIGHTDOWN = &H8              ' right button down
Public Const MOUSEEVENTF_RIGHTUP = &H10              ' right button up

Sub CATMain()
  Dim drSht As DrawingSheet
  Dim drVw As DrawingView
  Dim oSel As Selection
 
  Set oSel = CATIA.ActiveDocument.Selection
  oSel.Clear

  CATIA.ActiveDocument.Activate
  Set drSht = CATIA.ActiveDocument.Sheets.Item(1)
  Set drVw = drSht.Views.Item("Front view")

  SetCursorPos 200, 200                                ' screen coordinates in pixel
  mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
  SetCursorPos 1000, 1000
  mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
  DoEvents
  Debug.Print oSel.Count2
  CATIA.ActiveDocument.Activate
  SendKeys "{DELETE}"
 
End Sub


Die Gemeinheit dabei ist, dass api mouse events in Bildschirm-Koordinaten(pixel) angegeben werden,
Catia aber in mm denkt.
Um den Fangbereich gezielt einzugrenzen, müsstest vom Sheet auf die View rechnen;
danach das ganze durch die GetCursorPos-Abfrage zweier bekannter Catia-Positionen normieren.
Wenn das Sheet immer die gleiche Lage und Grösse hat, geht's wahrscheinlich auch mit probieren.

Ausserdem: Die Selektion bekommt von all dem nix mit.
          Die Methode bügelt über alle Views.

Hope it helps,
Joe

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 19. Mrz. 2015 15: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

Vielen Dank für den Hinweis - sehr inspirierend. Ich werde mir das mit Sicherheit mal ansehen, allerdings sind wir hier gerade in einem Migrationprojekt (Fa. kauft Fa. = Datenmigration). D.h. ich werde (jetzt) nicht die Zeit haben besonders viel zu testen und "rumzuspielen". Die Lage des Logos hängt natürlich vom Blattformat ab. Wer zeichnet denn auch schon sein Logo und benennt die Elemente dann nicht einmal eindeutig. ;-(

Trotzdem Danke und Gruß
Randle

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