Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Extract und anschließenden Fill

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:  Extract und anschließenden Fill (2471 mal gelesen)
4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

erstellt am: 30. Mai. 2016 11:37    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

Moooooin zusammen,

wie schon erwähnt, plane ich ein weiteres Makro. Dem Benutzer soll ermöglicht werden, Löcher in Körpern zu schließen. Im Kopf sowie aufm Papier steht der Plan schon bzw. die Idee, allerdings scheitert es jetzt teilweise an der Umsetzung. Bei der PLanung habe ich mich nach Ziethen orientiert. Ich denke, es sind wieder Kleinigkeiten, die mir da fehlen oder so.

Hier erst mal zu meinem Plan:

1) UserSelection Edge

Der Benutzer soll über ein Fenster aufgefordert werden eine Kante auszuwählen.
Also zunächst eine MsgBox anschließender UserSelection.
Box kein Problem.
SelectElement2
Referenz -> CreateReferenceFromObject
AddNewExtract

2) UserSelection Face

Als Support des Extracts wird eine Fläche benötigt, da der Extract über "Point continuity" erstellt wird.
Der Benutzer soll also noch eben die Fläche anklicken.
SelectElement2
Referenz -> CreatReferenceFromGeometry
Update Part
Extract fertig

3) Fill automatisch danach erstellen

Hier soll der erstellte Extract oder "Boundary" automatisch übernommen und der Fill ausgeführt werden.
also HybridShapeFill
AddNewFill
mit AddBound -> HybridShapeExtract1

Anschließend soll der Benutzer entweder erneut eine Fläche schließen können oder das Makro wird beendet. Also hier müsste wahrscheinlich eine Art Schleife hin, "Möchten Sie eine weiteres Loch schließen?" Bei Ja wird das Makro von oben an erneut durchlaufen, bei Nein wird es beendet. 
Zum Thema schleife habe ich mich noch nicht informiert bzw. angelesen. Aber das ist bestimmt das geringste Problem :P

Also ich stecke jetzt irgendwie bei der Edge fest, aber keine Ahnung warum VBA da muckt, stehe ein wenig aufm Schlauch.
Hier ist mein Code bis dahin:

Code:

Sub CATMain()


Dim partDocument1 As PartDocument

Dim part1 As Part

Dim shapeFactory1 As ShapeFactory

Dim reference1 As Reference

Dim StrInput As String

Dim bcheck As Boolean

Dim MsgBoxReturn As VbMsgBoxResult

Dim MyCatiaDocument As Document

Set MyCatiaDocument = CATIA.ActiveDocument

Set UserSel = MyCatiaDocument.Selection

Set partDocument1 = CATIA.ActiveDocument

Set part1 = partDocument1.Part

Set shapeFactory1 = part1.ShapeFactory

'USERSELECTION

MsgBoxReturn = MsgBox("Waehlen Sie die Kante aus, an der ein Loch geschlossen werden soll!", vbOKCancel, "Auswahl Koerper")

If MsgBoxReturn = vbCancel Then
    MsgBox "Auswahl wurde abgebrochen."
   
    Exit Sub

Else
   
    Dim InputObjectType1(0)
    InputObjectType1(0) = "Edge"
    UserSel.Clear
    Dim Status
    Status = UserSel.SelectElement2(InputObjectType1, "Edge an einem Loch auswaehlen, um Loch zu schließen.", False)
     
    End If


'######################################
'EDGE [EXTRACT]
'######################################


Set reference1 = UserSel.Item(1).Value

Dim hybridShapeExtract1 As HybridShapeExtract
Set hybridShapeExtract1 = hybridShapeFactory1.AddNewExtract(reference1)

hybridShapeExtract1.PropagationType = 1

hybridShapeExtract1.ComplementaryExtract = False

hybridShapeExtract1.IsFederated = False

End Sub


Besten Dank im voraus 

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 30. Mai. 2016 11: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 4ppU 10 Unities + Antwort hilfreich

Hallo 4ppU,

warum ein Makro.
Powercopy funzt auch.

Würde das nicht reichen?

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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. 2016 11: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 Nur für 4ppU 10 Unities + Antwort hilfreich

Hi 4ppu,

vielleicht klappt's mit einer anderen 'Edge' besser,
also anstatt "Edge"
eines von diesen:

      "TriDimFeatEdge", "RectilinearTriDimFeatEdge",
      "BiDimFeatEdge", "RectilinearBiDimFeatEdge",
      "MonoDimFeatEdge", "RectilinearMonoDimFeatEdge"
Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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. 2016 11:53    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 4ppU 10 Unities + Antwort hilfreich

Servus 4ppU
Die Methode "AddNewExtract" erwartet als Einput eine Reference.
ggf reicht folgende Änderung:
Code:
Set reference1 = UserSel.Item2(1).Refernence
Gruß
Bernd

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

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

4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

erstellt am: 30. Mai. 2016 12:04    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

Das ging ja schnell 

@Uwe
Powercopy ist für mich "Neuland". Und leider wird von oben ein Makro gewünscht :P Also bin ich diesbezüglich leider raus :/

@Bernd
Leider funktioniert die Änderung nicht, aber da werde ich nochmal weiter probieren.

@Joe
das werde ich mal ausprobieren.

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. 2016 12: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 4ppU 10 Unities + Antwort hilfreich

Servus
Welche Fehlermeldung kommt den?
Das mit einem Makro zu machen wird interessant. (wie stellt man sicher das die selektierte Kante geschlossen ist, das diese auf der selektieren Fläche liegt, ....)

Gruß
Bernd

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

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

4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

erstellt am: 30. Mai. 2016 12:58    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

Also ich habe ja vorher diese 3 schritte händisch ausgeführt und mitm Makro Rekorder aufgezeichnet. Und daher teils den Code entnommen. Also ich habe nicht berücksichtigt, dass das geprüft wird, ob die Kante geschlossen ist. Ich gehe davon aus das der Anwender nicht zum Beispiel eine Außenkante nimmt.

Fehlermeldung

Run-time error '438'
Object doesn't support this property or method.

Der Code vom Rekorder:

Code:
Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim bodies1 As Bodies
Set bodies1 = part1.Bodies

Dim body1 As Body
Set body1 = bodies1.Item("10001304371_D10_001|Body_Fertigung|EdgeFillet.93")

Dim shapes1 As Shapes
Set shapes1 = body1.Shapes

Dim pocket1 As Pocket
Set pocket1 = shapes1.Item("Pocket.1")

'HIER DIE USERSELECTION EDGE & MSGBOX
'ICH DACHTE MAN KANN DIESES BRepName VIELLEICHT ERSETZEN DURCH EINE EDGE DIE DURCH DEN ANWENDER
'AUSGEWÄHLT WIRD

Dim reference1 As Reference
Set reference1 = part1.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(10001304371_D10_001|Body_Fertigung|EdgeFillet.93;2793);None:();Cf11:());Face:(Brp:(10001304371_D10_001|Body_Fertigung|Edg eFillet.93;2295);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", pocket1)

Dim hybridShapeExtract1 As HybridShapeExtract
Set hybridShapeExtract1 = hybridShapeFactory1.AddNewExtract(reference1)

hybridShapeExtract1.PropagationType = 1

hybridShapeExtract1.ComplementaryExtract = False

hybridShapeExtract1.IsFederated = False

'HIER USERSELECTION FACE & MSGBOX
'HIER EBENFALLS ERSETZEN

Dim reference2 As Reference
Set reference2 = part1.CreateReferenceFromBRepName("RSur:(Face:(Brp:(10001304371_D10_001|Body_Fertigung|EdgeFillet.93;2793);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeature Support;MFBRepVersion_CXR15)", pocket1)

hybridShapeExtract1.Support = reference2

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("Geometrical Set.2")

hybridBody1.AppendHybridShape hybridShapeExtract1

part1.InWorkObject = hybridShapeExtract1

part1.Update

'AUTOMATISCH REFERENZ VON EXTRACT FÜR FILL NEHMEN

Dim hybridShapeFill1 As HybridShapeFill
Set hybridShapeFill1 = hybridShapeFactory1.AddNewFill()

Dim reference3 As Reference
Set reference3 = part1.CreateReferenceFromObject(hybridShapeExtract1)

hybridShapeFill1.AddBound reference3

hybridShapeFill1.Continuity = 0

hybridBody1.AppendHybridShape hybridShapeFill1

part1.InWorkObject = hybridShapeFill1

part1.Update

' SCHLEIFE FÜR WEITERES LOCH

End Sub


[Diese Nachricht wurde von 4ppU am 30. Mai. 2016 editiert.]

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. 2016 13: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 Nur für 4ppU 10 Unities + Antwort hilfreich

den Tipfehler hast aber schon korrigiert?

  UserSel.Item2(1).Refernence

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

erstellt am: 30. Mai. 2016 13:14    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

ehm jetzt ja ^^
jetzt kommt

Run-time error '424':

Obejct required

Allerdings in der Zeile

Code:
Set hybridShapeExtract1 = hybridShapeFactory1.AddNewExtract(reference1)

[Diese Nachricht wurde von 4ppU am 30. Mai. 2016 editiert.]

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. 2016 13: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 4ppU 10 Unities + Antwort hilfreich

Servus
Was "sagt" dir das Watch/Local-Fenster?
Wird die Reference auch gebildet?

Gruß
Bernd

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

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

4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

erstellt am: 30. Mai. 2016 13: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

Hey Bernd,

das hat mir bis gerade nix gesagt, aber ich hab das mal aktiviert und mit F8 durchlaufen lassen, anschließend mit F5, also komplett.

Unter F8:
Also unter reference1 steht die ganze Zeit "Nothing" und nach der UserSelection is Ende.

Unter F5:
Es stoppt dann ja bei der besagten Zeile hybridShapeExtract... und dann steht im Locals Window uter reference1 folgendes:

Code:
 
: DisplayName : "Selection_REdge:(Edge:(Face:(Brp:(Pad.2;0:(Brp:(Sketch.2;1)));None:();Cf11:());Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;4)));None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());Remo"

Immer wieder schön, neue Sachen zu lernen  

[Diese Nachricht wurde von 4ppU am 30. Mai. 2016 editiert.]

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. 2016 13:35    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 4ppU 10 Unities + Antwort hilfreich

Servus
Ich empfehle dir "Option explict" zu aktivieren. (zur Selektion siehe hier)
Dann wirst du sehen, dass manche Objekte nicht richtig Dimensioniert/Deklariert sind (du benötigst zB "Hybridshapefactory" statt "Shapefactory")

Gruß
Bernd

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

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

4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

erstellt am: 30. Mai. 2016 13:41    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

Och mist verdammt, alles klar danke dir 

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

4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

erstellt am: 21. Jun. 2016 14: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

Ich hab mal wieder ein wenig weiter gemacht.
Mittlerweile klappt das auch zumindest ein gewisses Stück weit. Allerdings bleibt es dann an der Support für den Extract hängen. Hier wird ja wieder eine Referenz verlangt. Im Locals Window sehe ich auch, das ein Wert eingelesen wurde (bzw. eine Referenz), aber ich verstehe nicht warum es dann nicht mehr weiter geht.

Also die Zeile in der es hängen bleibt ist folgende:

Code:
hybridShapeExtract1.Support = UserSel2.Item2(1).Reference

EDIT:
Also ich habs auch nochmal mit dem selben Code versucht nur die entsprechende Zeile geändert:

Code:
hybridShapeExtract1.Support = reference2

Bringt allerdings auch nicht.
Folgende Fehlermeldung taucht auf:
Zitat:

Run Time error '2147467259 (80004005)
Method 'SurChargeQI' of object 'HybridShapeExtract' failed.

Ich habe es schon gegooglet usw, jedoch komme ich zu keiner gescheiten Lösung....

Und mein bisheriger gesamter Code sieht so aus:

'#############
'CLOSE SURFACE
'#############

Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim MyCatiaDocument As Document
Set MyCatiaDocument = CATIA.ActiveDocument

Dim MsgBoxReturn1 As VbMsgBoxResult


Set UserSel1 = MyCatiaDocument.Selection

'Anschließend andere variable um nicht nur für dieses Part anwendbar
'Andere Variable für die Edge wählen
'UserSelection für die Kante um Boundary zu erstellen
'danach UserSelection für den Support
'danach wird diese Auswahl übernommen um darüber einen Fill zu erstellen

'##################
'USERSELECTION EDGE
'##################


MsgBoxReturn = MsgBox("Wählen Sie die Kante des zu schließenden Loches aus!", vbOKCancel, "Auswahl Edge")

If MsgBoxReturn = vbCancel Then
     MsgBox "Auswahl wurde abgebrochen."
   
    Exit Sub

Else
   
    Dim InputObjectType1(0)
    InputObjectType1(0) = "Edge"
    UserSel1.Clear
    Dim Status1
    Status1 = UserSel1.SelectElement2(InputObjectType1, "Wählen Sie die Kante des zu schließenden Loches aus, um einen Extract zu erstellen. ", False)
      
    End If

'######################################
'EDGE [EXTRACT]
'######################################

'variable der Userselction für Edge
'CreatReferenceFromObject -> Edge


Dim reference1 As Reference

Set reference1 = UserSel1.Item2(1).Reference


Dim hybridShapeExtract1 As hybridShapeExtract
Set hybridShapeExtract1 = hybridShapeFactory1.AddNewExtract(reference1)

hybridShapeExtract1.PropagationType = 1

hybridShapeExtract1.ComplementaryExtract = False

hybridShapeExtract1.IsFederated = False

'##################
'USERSELECTION FACE
'##################

Dim MyCatiaDocument2 As Document
Set MyCatiaDocument2 = CATIA.ActiveDocument


Dim MsgBoxReturn2 As VbMsgBoxResult
Set UserSel2 = MyCatiaDocument2.Selection


MsgBoxReturn = MsgBox("Wählen Sie die Fläche aus, die als Support des Extracts dient!", vbOKCancel, "Auswahl Face")

If MsgBoxReturn = vbCancel Then
     MsgBox "Auswahl wurde abgebrochen."
   
    Exit Sub

Else
   
    Dim InputObjectType2(0)
    InputObjectType2(0) = "Face"
    UserSel2.Clear
    Dim Status2
    Status2 = UserSel2.SelectElement2(InputObjectType2, "Wählen Sie die Fläche die als Support des Loches dient aus, um einen Extract zu erstellen. ", False)
      
    End If

'######################################
'FACE [EXTRACT]
'######################################

'variable der Userselction für support fläche

'CreateReferenceFromGeometry -> Fläche

Dim reference2 As Reference
Set reference2 = UserSel2.Item2(1).Reference


'############################
'Die Referenz muss noch anders eingebunden werden!
'

'hybridShapeExtract1.Support = reference2
hybridShapeExtract1.Support = UserSel2.Item2(1).Reference


Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("Geometrical Set") 'Speicherort des Extracts


hybridBody1.AppendHybridShape hybridShapeExtract1

part1.InWorkObject = hybridShapeExtract1

part1.Update


'######################################
'FILL
'######################################

'Referenz/Variable von Boundary aufnehmen


Dim hybridShapeFill1 As HybridShapeFill
Set hybridShapeFill1 = hybridShapeFactory1.AddNewFill()

Dim reference3 As Reference
Set reference3 = part1.CreateReferenceFromObject(hybridShapeExtract1)

hybridShapeFill1.AddBound reference3

hybridShapeFill1.Continuity = 0

hybridBody1.AppendHybridShape hybridShapeFill1

part1.InWorkObject = hybridShapeFill1


part1.Update

'######################################
'MSGBOX
'######################################

'erneut Loch schließen? Schleife erstellen um ein weiteres Loch zu schließen.

End Sub
[/CODE]

Vielen Dank für jegliche Hilfe  

[Diese Nachricht wurde von 4ppU am 22. Jun. 2016 editiert.]

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: 23. Jun. 2016 09:33    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 4ppU 10 Unities + Antwort hilfreich

Ich glaub es ist nicht gut, dass Du zwei Mal dasselbe Objekt benutzt, da Du das Extract vorher nicht in den Baum über AppendHybridShape hängt.

hybridShapeExtract1
Versuch mal ein weiteres Objekt zu verwenden.

Warum machst Du überhaupt von der Fläche nochmal ein Extract?

Sollte an der Stelel nicht ein Fill von der Boundary mit der Fläche als Support reichen?

------------------
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

4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

erstellt am: 23. Jun. 2016 09:57    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

Achso, ich bin davon ausgegangen, das ich es (wie als wenn man den Extract händisch macht) in der
Reihenfolge programmieren kann.
Also die UserSel für die Edge, anschließend UserSel2 für die Fläche als Support. Da ich den
Propagationtyp = 1 benötige, braucht es einen Support für den Extract.
Könnte natürlich sein, dass das Problem daher kommt. Aber ich habe den Code ja mit dem Rekorder aufgenommen und nur auf Individuelle Bedürfnisse angepasst, daher müsste ja eigentlich alles passen.

Zitat:
Warum machst Du überhaupt von der Fläche nochmal ein Extract?

Mach ich das? Oder meinst du wegen der Unterteilung/Überschriften?

Idee war halt:
- UserSelection Edge
     - Um Kante des Extracts zu erfassen
- UserSelection Face (Support für den Propagationtype)
     - Support bei komplizierten Löchern
- Fill (läuft automatisch, da der "hybridShapeExtract1" bereits als Variable/Referenz vorhanden ist)

Das merkwürdige ist, wenn ich die Zeile

Code:
hybridShapeExtract1.Support = reference2

herausnehme dann funktioniert alles soweit, nur nicht bei kompliziert gestalteten Löchern die einen Support verlangen nicht (was allerdings händisch funktioniert).

Gibts einen Superprofi in dem Bereich hier irgendwo? ^^

[Diese Nachricht wurde von 4ppU am 23. Jun. 2016 editiert.]

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: 23. Jun. 2016 16: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 4ppU 10 Unities + Antwort hilfreich

Die Fläche scheint keine gute Referenz zu sein.
Du wirst eine Hilfsgeometrie bilden müssen. Zumindest fällt mir grad nix besseres ein.
Dafür könntest Du noch ein Extact von der Fläche bilden und dann als Referenz für den Support der des anderen Extracts verwenden.
Wenn Du es nicht dem Baum hinzufügst wird es auch unter das andere Extract gehangen.

------------------
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

4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

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

Ja merkwürdigerweise funktioniert es nicht, so wie ich es vorher an mehreren Teilen getestet habe. Keine Ahnung was da schief gelaufen ist. Ich werde jetzt zuvor einen Extract einer Fläche erstellen und anschließend die Löcher schließen. Auf diese weise müsste es Funktionieren wenn ich den Flächenextract als "Support nutze.
Trotzdem Danke für die Hilfe.


EDIT:

Habe jetzt mal ein wenig im Forum nach Select Face usw gesucht. Kann es sein, dass man ein Fläche nicht einfach über ein UserSelect auswählen kann ? Oder ist das mittlerweile möglich?
Habe da nur irgendwo gelesen, dass man hier mit einem Filter arbeiten muss, um die Fläche auszuwählen...

[Diese Nachricht wurde von 4ppU am 24. Jun. 2016 editiert.]

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

4ppU
Mitglied



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

Beiträge: 44
Registriert: 19.04.2016

Unterschiedliche Arbeitsplätze/ Hardware.
Catia V5
Microsoft Visual Basic for Applications

erstellt am: 30. Jun. 2016 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

Zur Info, es steht nun   
Ich habe es so geklärt, dass zunächst eine Supportfläche erstellt wird
und anschließend geht das Makro in eine Schleife, in der immer wieder Löcher geschlossen werden können, solange der User es möchte.

Danke

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