Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Abfrage Linienfarbe mittels Python

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:  Abfrage Linienfarbe mittels Python (1942 mal gelesen)
Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 19. Mai. 2015 19:49    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

Guten Tag ,

gibt es eine Möglichkeit mittels Python zu prüfen welche Linienfarbe in einer Zeichnung verwendet wurde und gegebenenfalls zu ändern ?
Es soll verhindert werden das Linien mit der Farbe Orange (wie selektierte Linien) in einem Modell auftauchen.

Besten Dank im voraus

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. Mai. 2015 21: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 Nur für Begocidi 10 Unities + Antwort hilfreich

Hallo Begocidi,

Du musst zuerst die Linien auswählen(selektieren),
anschliessend die Linienfarbe VisProperties/GetRealColor
bzw. GetVisibleColor auslesen und vergleichen.

Tschau,
Joe

PS: Technische Zeichnungen müssen nicht farbig sein;
PPS: Gelb ist auch schlecht, sprich nicht lesbar;

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

Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 20. Mai. 2015 13: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

Danke für die Antwort , gäbe es die Möglichkeit die Farben aller Linien automatisch auszulesen ohne eine manuelle selektion vorzunehmen ?

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: 20. Mai. 2015 18:30    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 Begocidi 10 Unities + Antwort hilfreich

Noch ein paar Fragen vorher:

- nur Linien(Lines) oder auch Curves?
- 2D oder 3D?

Du kannst auch direkt nach den Elementen mit der Farbe suchen, zB (in VB):

Code:

  Dim oSel ' As Selection
  Dim n As Integer
 
  Set oSel = CATIA.ActiveDocument.Selection
  oSel.Clear
  oSel.Add (drVw)                                    'Ansicht auswählen

  'elemente suchen
  oSel.Search "Drafting.'Generated Item'.Color=Orange;all" 'search within selected view


Ausserdem: Orange als Farbe im 3D zu verwenden ist eigentlich ein NoNo.
Den Grund hast Du schon genannt.

Tschau,
Joe

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

Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 20. Mai. 2015 19:25    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

danke ! betrifft lediglich linien im 3d bereich
leider bekomme ich in der zeile oSel.Add (drVw) eine fehlermeldung angezeigt .....

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: 20. Mai. 2015 22: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 Nur für Begocidi 10 Unities + Antwort hilfreich

Das wundert mich nicht.

ich hab den Code aus einem bestehenden Makro kopiert und ergänzt.

Die Deklaration dazu lautet:

Dim drVw ' As DrawingView

Nachdem Du aber 3D-Geometrie prüfen willst, müsste der Suchstring
in etwa(ungeprüft) so ausschauen:

oSel.Search "Color=Orange;all"

Die DrawingView hab ich nur als Beispiel zuerst in die selektion genommen.
Die Zeile passt aber für 3D nicht und muss entfallen.

Aus Deinen bisherigen Fragen schliesse ich,
dass Du noch nicht viele Makros geschrieben hast.

Stichworte für die Suche im Forum:
- Selection, VisProperties, GetRealColor;

Um den exakten Suchstring zu finden, zeichnest du am einfachsten
eine Suche mit dem Makro-Rekorder auf(Catia/Tools/Makro/Start-Recording..).
Der Suchstring steht danach im Skript.

Tschau,
Joe

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

Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 21. Mai. 2015 16:29    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 die Hilfe . Ich habe in einer Studienarbeit unter anderem die Aufgabe ein Tool mittels Python zu entwickeln das Catia Modelle auf bestimmte "Verstösse" oder Verbesserungen  hin untersuchen soll.
Die Farbauswahl zu untersuchen war mein erster Gedanke.
In Sachen Makro Programmierung bin ich leider noch sehr unwissend.
Falls jemand weitere Vorschläge für NoGos in der Konstruktion mit Catia hat auf die hin ich das Python Tool erweitern kann wäre ich sehr Dankbar !

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: 21. Mai. 2015 17:12    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 Begocidi 10 Unities + Antwort hilfreich

Hallo,

nur um Dir eine Idee zu geben, worum es geht ein paar Threads/Links:

http://forum.cad.de/foren/ubb/Forum133/HTML/004368.shtml

ftp://ftp.transcat-plm.com/pub/tcsoft/qchecker/quickstartQCV5_26x_DE_QT.pdf

https://www.transcat-plm.com/en/support/downloads/transcat-software/tc-software/q-checker-v5.html#c73

Beim letzten sind ganz unten Listen mit den Prüfkriterien.

Tschau,
Joe

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

Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 30. Mai. 2015 20: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

Jetzt versuche ich mittels Python abzufragen ob im sketch Verrundungen verwendet wurden da die Verrundungen von Körperkanten am Solid  generiert werden sollten und nicht im sketch...

Gäbe es die Möglichkeit den gesamten Strukturbaum mit diesem Kriterium zu durchsuchen und eventuelle Funde auszugeben ?

Gruss

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: 30. Mai. 2015 20:21    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 Begocidi 10 Unities + Antwort hilfreich

Servus
Das stelle ich mir schwieg vor.
Wie willst du eine Verrundung in der Skizze erkennen?
Alle Kreisbögen? Macht IHMO keinen Sinn.
Alle Kreisbögen mit zwei Tangentailübergängen zu andern geometrischen Elementen? Ist diese Bedingung hinreichend?

Gruß
Bernd

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

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

Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 30. Mai. 2015 20: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

Alle Kreisbögen mit zwei Tangentailübergängen zu andern geometrischen Elementen wäre eine gute möglichkeit zur abfrage , damit könnte es klappen Danke ! nur wie setze ich das in Python um ?
Gruss

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: 30. Mai. 2015 20: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 Begocidi 10 Unities + Antwort hilfreich

--Bernd war wieder schneller--

Schwierig.

Soweit ich weiss, sind runde Konturen (große Radien) zulässig.

' ~ .Sketch.GeometricElements.Item(n).GeometricType' kennt keinen
Typ 'Verrundung' sondern nur 'catGeoTypeCircle2D'.

Die einzige Unterscheidungsmöglichkeit ist also der Wert des Radius.
Ob es reicht alle Radien <20mm (zB) als Verrundung anzunehmen, kann ich nicht sagen.

Ausserdem: Konturradien können auch tangentiale Übergänge haben.

Tschau,
Joe

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

Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 24. Jun. 2015 17: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

ich bins nochmal...

es ist mir bereits gelungen den strukturbaum in python einzulesen somit können strukturelle untersuchungen des baums vorgenommen werden.
was mir jetzt noch immer nicht gelungen ist , ist ein suchlauf der ein modell auf verwendete farben untersucht. z.b. müsste ich alle elemente , linien , parts .. einer bestimmten farbe ausgeben ...
die verbindung mit catia über den comport ist kein problem
nur die notwendige anweisung des suchlaufs  und die ausgabe eines fundes ist mir ein rätsel ...
über hilfe wäre ich sehr dankbar !

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: 24. Jun. 2015 18: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 Begocidi 10 Unities + Antwort hilfreich

Servus
Für sowas bietet sich die Suche an (Bearbeiten -> suchen) zB
Code:
'alles mit der Farbe (255,128,0) suchen
selection1.Search "Color='(255,128,0)',all"
'alle Drahtgeometrie mit der Farbe (255,128,0) suchen
selection1.Search "CATGmoSearch.Wireframe.Color='(255,128,0)',all"
Ich empfehle dir mit der Suche etwas rumspielen. Den fertigen Suchstring kannst du dann per Makroaufzeichung aufnehmen.

Gruß
Bernd

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

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

Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 24. Jun. 2015 19: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

Danke für die Antwort ,
das habe ich bereits ausprobiert nur wie ändere ich den code ab das er in python läuft ? über vba läuft alles prächtig, leider ist die vorgabe eine abfrage über python zu erstellen 


Dim partDocument1 As Document
Set partDocument1 = CATIA.ActiveDocument
Dim selection1 As Selection
Set selection1 = partDocument1.Selection
selection1.Search "Color='(255,255,0)',all"

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

Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 25. Jun. 2015 13: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

unklar ist  wie ich das suchergebniss ( bsp. bezeichnungen der Linienin mit der betreffenden Farbe) in python ausgeben kann.

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: 25. Jun. 2015 13: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 Nur für Begocidi 10 Unities + Antwort hilfreich

Servus
Du kannst zB mit einer Schleife die Selektion abarbeiten zB (in VBA):
Code:
for i = 1 to oSelection.Count
    Set oObject = oSelection.item(i).value 'das eigednlcihe Objekt zb die Linie, diese hat dann weiter Eigenschaften (zB auch Name)
    StrName = oSelection.value(i).Name
next
Näheres dazu: Doku, Fachbuch und Forensuche (ggf erst mal alles in VB(A) ausprobieren und dann nach Python übersetzen)

Gruß
Bernd

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

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

Begocidi
Mitglied
Maschinenbauer


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

Beiträge: 12
Registriert: 19.05.2015

erstellt am: 25. Jun. 2015 13:43    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

Danke ! Genau da  liegt mein Problem den VBA Code in einen für Python funktionsfähigen Code umzuwandeln das ich eine Ausgabe erhalte 

Meine Suche ergab bisher leider keine hilfreichen Informationen ....
Es gibt viel Infos über die Steuerung von Catia mittels Python aber leider nicht wie ich Infos/Eigenschaften speziell wie mein Problem die Farbgebung in Python anzeigen kann ...

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