Autor
|
Thema: Problem Farbe der Bohrung ändern (1546 mal gelesen)
|
Tiberius Mitglied
Beiträge: 414 Registriert: 19.02.2002
|
erstellt am: 25. Aug. 2011 13:18 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte die Farbe von Bohrungen ändern. Dazu hab ich mal einen Auszug aus meinem Programmcode gemacht. Beim Zuweisen der Farbe kommt der Fehler: Object doesn´t support this property or method Code: A=1 Set Selection = ActiveDoc.Selection Selection.Search "CATPrtSearch.Hole.Threaded=TRUE,all" Set SelHole = Selection.Item(A).Value msgbox (SelHole.HoleThreadDescription.Value) SelHole.VisProperties.SetRealColor 255, 126, 0, 0
Ich seh grad den Wald vor lauter Bäumen nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tberger Mitglied Application Manager CATIA V5 / V6
Beiträge: 1385 Registriert: 13.01.2007 WIN 7 64bit V5R21SP3HF49 3DX/V6 R2016x
|
erstellt am: 25. Aug. 2011 15:51 <-- editieren / zitieren --> Unities abgeben: Nur für Tiberius
Du musst das Feature selbst in die Selektion bringen, dann die Visproperties der Selektion setzen, dann gehts. Aus deiner Suche, ggf. die dort selektierten Elemente in ein Feld bringen, aus dem Feld der Reihe nach prüfen falls nötig, dann die Elemente wieder in die Selektion bringen: Dim r, g, b As Long r = ... <deine Werte> g = ... <deine Werte> b = ... <deine Werte> selection1.Clear selection1.Add SelFeature selection1.VisProperties.SetRealColor r, g, b, 1 ------------------ Grüße aus dem Thurgau Thomas +++++++++++++++++++++++++++++++++ CATIA - eine Laune der Natur ...
[Diese Nachricht wurde von tberger am 25. Aug. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 25. Aug. 2011 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für Tiberius
|
Tiberius Mitglied
Beiträge: 414 Registriert: 19.02.2002
|
erstellt am: 26. Aug. 2011 00:34 <-- editieren / zitieren --> Unities abgeben:
Hallo, dass sich alle einfärben das hab ich heute Nachmittag schon gehabt, aber ich will ja eine Selektion schritt für schritt durchgehen und dann ggf. eine einzelne einfärben. Das ist aus meinem Codeschnipsel leider nicht hervorgegangen. Sorry Das A stand für ein beliebiges aus der Selektion. Gruß Tiberius [Diese Nachricht wurde von Tiberius am 26. Aug. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
meisterlumpi Mitglied
Beiträge: 118 Registriert: 15.04.2011 Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64
|
erstellt am: 26. Aug. 2011 01:43 <-- editieren / zitieren --> Unities abgeben: Nur für Tiberius
Hallo alles an code hier im post ist ungetestet! mit Selection.Search "CATPrtSearch.Hole.Threaded=TRUE,....." ist es natürlich am elegantesten, aber keine ahnung wie das geht.. ansonsten..
Code:
Dim ActiveDoc As Document Set ActiveDoc = CATIA.ActiveDocument Dim Selection1 'As Selection Set Selection1 = ActiveDoc.SelectionDim SelectedHoles As Collection Set SelectedHoles = New Collection Selection1.Clear Selection1.Search "CATPrtSearch.Hole.Threaded=TRUE,all" Dim SelHole 'As Hole Dim i As Integer For i = 1 To Selection1.Count With Selection1.Item(i) 'If TypeName(.Value) = "Hole" Then ' ' HIER CODE FÜR DIE AUSWAHL DER BOHRUNGEN ' Set SelHole = .Value ' die Bohrung in der Collection speichern SelectedHoles.Add SelHole 'End If End With Next ' alle Bohrungen zum einfärben sind jetzt in der Collection ' jetzt Selection1 löschen und mit den Bohrungen füllen Selection1.Clear For Each SelHole In SelectedHoles Selection1.Add SelHole Next ' alle Bohrungen in der Selection einfärben Selection1.VisProperties.SetRealColor 255, 126, 0, 0 'Selection1.Clear 'Selection1 = Nothing 'SelHole = Nothing 'SelectedHoles = Nothing
wie gesagt, ungetestet. es kann sein das "Selection1.VisProperties..." nicht so funktioniert, vielleicht muss man da erst ein VisPropertySet definieren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tiberius Mitglied
Beiträge: 414 Registriert: 19.02.2002
|
erstellt am: 26. Aug. 2011 09:46 <-- editieren / zitieren --> Unities abgeben:
Hi, ich habs mal probiert, bekomme aber immer noch einen Fehler. Den Code von meisterlumpi hab ich dann eins zu eins mal in ein Modul kopiert und ausgeführt, doch leider tut sich da garnicht - also auch kein Fehler. Wenn ich das Makro so laufen lasse wie es hier steht, dann müßten doch alle in der Selektion sein, oder? Ups: Hatte nen Denkfehler. Makro von meisterlumpi geht natürlich. Sorry [Diese Nachricht wurde von Tiberius am 26. Aug. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|