Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  HybridShapeSplit - BothSidesMode 2tes Element auswählen

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:  HybridShapeSplit - BothSidesMode 2tes Element auswählen (2275 mal gelesen)
Christrukteur
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 16.04.2010

CATIA V5R19 unter XP

erstellt am: 16. Jul. 2010 11: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


bothsides_split.PNG

 
Hallo zusammen,

habe bei der Erstellung einer Trennung für ein Profil, wo ich im nachhinein beide Seiten behalten möchte, das Problem, dass ich die 2te Seite nicht mehr ausgewählt bekomme. Konkret:

Dim hybridShapeSplit1 As HybridShapeSplit
Set hybridShapeSplit1 = hybridShapeFactory1.AddNewHybridSplit(reference20, reference21, 1)

hybridShapeFactory1.GSMVisibility reference20, 1

hybridShapeSplit1.BothSidesMode True

body1.InsertHybridShape hybridShapeSplit1

part1.InWorkObject = hybridShapeSplit1

part1.Update


Es entsteht das angehängte Bild. So jetzt möchte ich den 2ten Teil auswählen:


Dim hybridShapes1 As HybridShapes
Set hybridShapes1 = body1.HybridShapes

Dim hybridShapeSplit1 As HybridShapeSplit
Set hybridShapeSplit1 = hybridShapes1.item("Split.1")


Da kommt dann nur die Fehlermeldung "The method Item failed". Hat jemand eine Idee woran das liegen könnte? Gibt es da einen Workaround?

Viele Grüße

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 19. Jul. 2010 13:44    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 Christrukteur 10 Unities + Antwort hilfreich

Hallo,

also Idee woran das liegen könnte habe ich, jedoch keine Lösung, da der Fehler bei CATIA zu liegen scheint.
Das Split.1 dürfte nicht unter .2 liegen, das ist nicht korrekt, da Split an sich kein Listenelement ist.
Hervorgerufen wird das wahrscheinlich dadurch, dass nur 1 Element mit Append hinzugefügt wird.
Die Methode Item liefert das Ergebnis nicht, da es Item von Split nicht geben dürfte und Split.1 nicht unter den HybridShapes hängt. 

Was ich probieren würde ist, das Ergebnis zu selektieren und eine Suche nach Split darüber laufen zu lassen, darin könnte dann das Ergebnis enthalten sein.

Nächster Versuch wäre ein AppendHybridShape von einem GeoSet.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 19. Jul. 2010 23:34    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 Christrukteur 10 Unities + Antwort hilfreich

Hallo Christrukteur,

die zweite Seite des Splites solltest Du wie folgt bekommen, allerdings nur als "Reference":

Code:
Dim hybridShapeSplit1Ref2 As Reference
Set hybridShapeSplit1Ref2 = hybridShapeSplit1.GetOtherSide
Ich weiß ja nicht, was Du dann damit machen willst, doch vielleicht brauchst Du ja auch nur die "Reference"...


mfg,
Lusilnie

------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 20. Jul. 2010 00:16    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 Christrukteur 10 Unities + Antwort hilfreich

Hallo Christrukteur,

falls Du doch das "HybridShape" brauchst, könntest Du notfalls auch so darauf zugreifen:

Code:
part1.InWorkObject = hybridShapeSplit1Ref2

Dim selection1 As Selection
Set selection1 = partDocument1.Selection

selection1.Clear
selection1.Add part1.InWorkObject
selection1.Search "Name=" & hybridShapeSplit1Ref2.DisplayName & ",sel"

Dim hybridShapeSplit2 As HybridShapeSplit
Set hybridShapeSplit2 = selection1.Item2(1).Value

part1.Update



mfg,
Lusilnie

------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 20. Jul. 2010 10:07    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 Christrukteur 10 Unities + Antwort hilfreich

Kann man nicht das Part nach GetObjectFromName() oder so fragen um die Referenz aufzulösen?

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 20. Jul. 2010 23:20    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 Christrukteur 10 Unities + Antwort hilfreich

Hallo allerseits,

o.k., wenn "HoBLila" uns hier nur einen Brocken hin wirft ( ), bereite ich den Code mal auf:

Code:
Dim hybridShapeSplit2 As HybridShapeSplit
Set hybridShapeSplit2 = part1.FindObjectByName(hybridShapeSplit1Ref2.DisplayName)
Ich bin mir aber nicht sicher, ob dies schneller ist, da hier im gesamten "CATPart" gesucht wird und nicht nur in dem "Geometrical Set", welches den "Split" enthält.


mfg,
Lusilnie

------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

CabinMaster
Mitglied
Diplomingenieur L&R


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

Beiträge: 19
Registriert: 31.07.2009

Windows XP
Catia V5 R18
[und nein: Katja mag nur einen Prozessor zur Zeit benutzen]
Makro mit CATVBS

erstellt am: 09. Sep. 2010 09: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 Nur für Christrukteur 10 Unities + Antwort hilfreich


SplitKatja.jpg

 
Eine knifflige Frage, die mich auch etwas Zeit gekostet hat.

So ist meine Lösung:
SplittedWin(ewin) ist mein HybridShapeSplit. Da ich viele Fenster habe, ist es ein Objekt-Array. Ich habe ihn bereits erstellt und einen Namen gegeben, jetzt aktiviere ich den "DothSidesMode"

Code:
SplittedWin(ewin).BothSidesMode = True

Nun will ich die entstandene Oberfläche haben, das ist gar nicht so einfach. Ich erstelle eine Referenz auf die andere Seite.
Code:
Set ref = SplittedWin(ewin).GetOtherSide

Eine Referenz ist kein Objekt, dementsprechend suche ich das Objekt anhand seines angezeigten Namens. Das ist von hinten durch die Brust ins Auge, aber funktioniert.
Code:
Set WindowSurface(total_win) = P.Part.FindObjectByName(ref.DisplayName)

Die folgenden Zeilen sind dafür da, mir vor einem Laufzeitfehler noch kurz zu sagen was schief lief.
Code:
If TypeName(WindowSurface(total_win))="Nothing" Then
MsgBox "Object not found for " & win_nr & ", expect error!"
End If


Jetzt ganz wichtig: immer schön einen Namen geben! Wer richtig Namen verteilt und in die richtigen HybridBodies legt, der erspart sich viel Ärger.
Code:
WindowSurface(total_win).Name = "Window" & total_win

Im angefügten Bild sieht man mehr. Dabei habe ich eine Fensterschnittfläche mal wieder eingeblendet.
Man beachte auch den Strukturbaum, mit vielen schönen eindeutigen Namen. So finde ich jedes Teil hinterher auch wieder.


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