Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Umfärben einer Fläche schlägt nach Import eines Brep-Namens aus XML-Datei fehl

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:  Umfärben einer Fläche schlägt nach Import eines Brep-Namens aus XML-Datei fehl (935 mal gelesen)
RH1002
Mitglied


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

Beiträge: 2
Registriert: 16.05.2012

erstellt am: 16. Mai. 2012 23: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

Hallo liebe Forumsgemeinde!

Ich bin nue hier und beschäftige mich erst seit kurzem mit der Makroprogrammierung in CATIA V5. Daher bitte ich darum, mir eventuelle dumme Fragen und Unkenntnis meinerseits nachzusehen.

Zum Sachverhalt:

Ich möchte, dass ein Nutzer eine Fläche selektiert und diese dann anders eingefärbt wird. Solange ich dies mit folgendem Code direkt durchführe, funktioniert das auch problemlos.


Sub Selektion_vornehmen()

Dim UserSelection
Dim Auswahl(0)
Dim E As String

Auswahl(0) = "AnyObject"
Set UserSelection = CATIA.ActiveDocument.Selection

If UserSelection.Count = 0 Then
    E = UserSelection.SelectElement2(Auswahl, "Wählen Sie eine Fläche aus", False)
Else
    MsgBox ("Sie dürfen keine vorausgewählten Elemente verwenden!")
    Exit Sub
End If

If E = "Normal" Then
   
    Dim xmlDoc As New DOMDocument
    Dim xmlWurzel As IXMLDOMElement
   
    xmlDoc.Load ("C:\Users\Rene\Documents\Studium Maschinenbau HSU\Master\Masterarbeit\XML-Dateien\Neu.xml")
    Set xmlWurzel = xmlDoc.DocumentElement
       
    Dim element As IXMLDOMElement
    Set element = xmlDoc.createElement("Name")
    xmlWurzel.appendChild element
    xmlWurzel.LastChild.Text = UserSelection.Item(1).Value.Name
       
    xmlDoc.Save ("C:\Users\Rene\Documents\Studium Maschinenbau HSU\Master\Masterarbeit\XML-Dateien\Neu.xml")
Else
    MsgBox ("Abbruch")
End If
   
    Dim ref As Reference
    Set ref = UserSelection.Item(1).Reference
    Dim Liste As Selection
    Set Liste = CATIA.ActiveDocument.Selection
    Liste.Clear
    Liste.Add ref
   
    Liste.VisProperties.SetRealColor 255, 255, 0, 1
   
End Sub

Kritisch wird es jetzt, wenn ich dies nicht mehr direkt nacheinander machen möchte. Ich habe eine zweite Sub geschrieben, in der ich mir den Namen des Brep-Elements einlese und darauf aufbauend die Fläche einfärben möchte.
Der Code sieht wie folgt aus:

Sub Fläche_einfärben()

Dim xmlDoc As New DOMDocument
xmlDoc.Load ("C:\Users\Rene\Documents\Studium Maschinenbau HSU\Master\Masterarbeit\XML-Dateien\Neu.xml")

Dim Flaeche As String
Flaeche = xmlDoc.DocumentElement.FirstChild.Text
'MsgBox (Flaeche)

' String für Referenz aufbereiten
Flaeche = Right(Flaeche, Len(Flaeche) - 10)
Flaeche = Left(Flaeche, InStr(Flaeche, "Cf11  )") + 6)
Dim Endung As String
Endung = ");WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)"
Flaeche = Flaeche & Endung
MsgBox (Flaeche)

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim Bauteil As Part
Set Bauteil = partDocument1.Part

Dim bodies1 As bodies
Set bodies1 = Bauteil.bodies

Dim body1 As Body
Set body1 = bodies1.Item("Körper.2")

Dim shapes1 As Shapes
Set shapes1 = body1.Shapes

Dim solid1 As solid
Set solid1 = shapes1.Item("Volumen.1")

Dim ref As Reference
Set ref = Bauteil.CreateReferenceFromBRepName(Flaeche, solid1)

Dim Liste As Selection
Set Liste = CATIA.ActiveDocument.Selection
Liste.Clear
Liste.Add ref

Liste.VisProperties.SetRealColor 0, 0, 0, 0
CATIA.ActiveDocument.Part.Update

MsgBox ("Fertig")

End Sub


Wenn ich das ausführe ist es nun so, dass in der Symbolleiste der Grafikeigenschaften für die Fläche tatsächlich die Farbe Schwarz angezeigt wird, diese jedoch bei Selektion eines anderen Elementes nicht erkennbar ist. Wählt man die Fläche dann erneut an, so ist in der Symbolleiste ebenfalls nicht mehr Schwarz angezeigt. Eigentlich ist der Ablauf ja ähnlich. Ich vermute daher, dass bei der Erstellung der Referenz im zweiten Fall etwas nicht in Ordnung ist, kann den Fehler aber nicht finden.

Leider verstehe ich dieses "Phänomen" nicht und bitte um eure Unterstützung.

Viele Grüße,
René

[Diese Nachricht wurde von RH1002 am 16. Mai. 2012 editiert.]

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

RH1002
Mitglied


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

Beiträge: 2
Registriert: 16.05.2012

erstellt am: 21. Mai. 2012 11:06    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

Finally I made it 

Die Antwort versteckte auf die gestellte Frage versteckte sich in diesem Thread:

http://ww3.cad.de/foren/ubb/Forum137/HTML/003912.shtml

Das Problem ist einfach nur gewesen, dass ich die Referenz mit "CreateReferenceFormBrepName" über den Namen des Brep Elementes erzeugen wollte. Hätte ich einfach den String aus der XML Datei mit "CreateReferenceFromName" verwendet,  hätte ich mir eine Menge Arbeit ersparen können...

Naja Problem gelöst, das ist die Hauptsache.Danke an RBB86 und HoBLila für die unbewusste Unterstützung! 

Close

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