Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Kante extrahieren

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:  Kante extrahieren (2583 mal gelesen)
Zwenne12
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 26
Registriert: 23.08.2004

erstellt am: 13. Jun. 2005 12:17    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


SpecTree.jpg

 
Hallo Leute,

um ein Streifenlayout für Folgeverbundwerkzeuge zu erstellen, möchte ich mit der Funktion "Extract" festlegen in welcher Folge
ein bestimmtes Profil geschnitten werden soll. Dazu habe ich alle Schnitte in einem Sketch erstellt, diesen dann gepattert und danach in der entsprechenden Folge eine Kante des gewünschten Schnittes selektiert und extrahiert.
Jetzt möchte ich das mit einem Makro automatisieren:

Language="VBSCRIPT"

Sub CATMain()


Dim part1 As Part

Set part1 = CATIA.ActiveDocument.Part

'-----------------Selektieren der Kante

Dim Selektion(0)
Dim Eingabe As CATBSTR
Dim UserSel As Selection

Set UserSel = CATIA.ActiveDocument.Selection
Selektion(0) = "Edge"
Eingabe = UserSel.SelectElement(Selektion, "Kante selektieren!", false)

'-----------------Extrahieren

Dim Kanten As AnyObject
Dim Ref As Reference
Dim hybridShapeExtract1 As HybridShapeExtract
Dim Ableitung As HybridShapeFactory

Set Kanten = UserSel.Item(1).Reference
Set Ref = part1.CreateReferenceFromObject (Kanten)
Set Ableitung = part1.HybridShapeFactory
Set hybridShapeExtract1 = Ableitung.AddNewExtract(Ref)

hybridShapeExtract1.PropagationType = 1
hybridShapeExtract1.ComplementaryExtract = False
hybridShapeExtract1.IsFederated = False

part1.update


End Sub


Ich bekomme jedoch immer folgende Fehlermeldung: siehe Anhang
Die gelben Linien sind übrigens der gepatterte Sketch und die pinken Profile sind die Extracts.

Ich hoffe ihr könnt mir helfen den Fehler zu finden.

Gruß
Sven

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 13. Jun. 2005 13: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 Nur für Zwenne12 10 Unities + Antwort hilfreich

Hallo Sven,

zwei Fehler sind im Makro:

1. Das Objekt "Kanten" ist doch bereits eine Referenz. Warum dann nochmal mit

Set Ref = part1.CreateReferenceFromObject (Kanten)

???

Hier reicht es bereits so:

Set hybridShapeExtract1 = Ableitung.AddNewExtract(Kanten)


2. Nach dem Erzeugen des Extractes darf man nicht vergessen, dieses Objekt einem "Open Body" zuzuweisen:

Dim oOpenBody As HybridBody
set oOpenBody = part1.HybridBodies.Item(1)
oOpenBody.AppendHybridShape hybridShapeExtract1


Dann funktioniert es auch.

Gruß
Steffen

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

Zwenne12
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 26
Registriert: 23.08.2004

erstellt am: 13. Jun. 2005 13:56    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 Steffen,

vielen Dank für die schnelle Antwort  .
Hat prima geklappt, allerdings nicht mit Item(1), sondern direkt mit dem Namen des OpenBody Item("Beschnitt").

Gruß Sven

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 13. Jun. 2005 14: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 Zwenne12 10 Unities + Antwort hilfreich

Hallo Sven.

.Item(1) war ja auch nur als Beispiel gedacht. Ich wußte ja nicht, wie bei Dir der Körper heißt.

Es freut mich trotzdem, dass ich Dir helfen konnte.

Gruß Steffen

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

Zwenne12
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 26
Registriert: 23.08.2004

erstellt am: 13. Jun. 2005 14: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

Hallo,

Hab da noch ne Frage. Wie kann ich nun die Farbe ändern?
Mit

Dim Farbe As VisPropertySet
Set Farbe = UserSel.VisProperties
Farbe.SetRealColor 255,0,255,0

geht es nicht. Oder muss ich für UserSel etwas anderes eintragen?

Danke
Sven

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

Steffen Hohmann
Mitglied
 


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

Beiträge: 446
Registriert: 06.03.2002

erstellt am: 13. Jun. 2005 15: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 Nur für Zwenne12 10 Unities + Antwort hilfreich

Hallo Sven,

die Frage ist, was beinhaltet UserSel zu diesem Zeitpunkt und wessen Farbe soll geändert werden?

Die vom Extract?
Dann muß das Extract auch der Selection zugewiesen werden.

UserSel.Clear
UserSel.Add hybridShapeExtract1
UserSel.VisProperties.SetRealColor 255,0,255,0

Gruß
Steffen

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

Zwenne12
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 26
Registriert: 23.08.2004

erstellt am: 14. Jun. 2005 07:32    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 Steffen,

hat alles geklappt  . Hab allerdings das part1.update noch
unter den VisProperties gehabt, und da hat es nicht funktioniert.
Danke für die Hilfe

Gruß
Sven

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

sven180581
Mitglied



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

Beiträge: 19
Registriert: 23.01.2013

erstellt am: 12. Feb. 2013 08: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 Zwenne12 10 Unities + Antwort hilfreich

Servus beieinander,

habe das Makro hier gefunden und gedacht super das passt genau wie ich es brauch.

Leider bleibt es bei mir immer an der Stelle hängen.
Eingabe = UserSel.SelectElement(Selektion, "Kante selektieren!", false)

Ich brauch das Makro auch damit ich eine Kante auswählen kann und es daraus dann auch wie hier des Extract macht.

Leider finde ich den Fehler nicht.

Abei ein Bild. Möchte die rote Kante selektieren und dann soll er mir von dem Kurvenverlauf des kleinen Feldes ein Extract erzeugen.
Die Kante ist hierbei im Baum nicht einzeln anwählbar sondern existiert nur wie makiert als Solid.2

Was muss ich denn da im Makro anpassen..?

Vielen Dank vorab

Gruß

[Diese Nachricht wurde von sven180581 am 18. Feb. 2013 editiert.]

[Diese Nachricht wurde von sven180581 am 18. Feb. 2013 editiert.]

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

sven180581
Mitglied



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

Beiträge: 19
Registriert: 23.01.2013

erstellt am: 12. Feb. 2013 09:59    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 Zwenne12 10 Unities + Antwort hilfreich

Habe es jetzt mal so probiert.
Jetzt kann ich die benötigte Kante auswählen direkt aus dem Bauteil.


Sub CATMain()
'Deklaration-----------------------------------------------
Set Selection1 = CATIA.ActiveDocument.Selection
Dim ElementTyp(0)
ElementTyp(0) = "AnyObject"    'alsAnyObject geändert, um im Bauteil direkt die nötige Kante zu wählen
Selection1.Clear
Do    ' Do...LOPP-Schleife
  Auswahl = Selection1.SelectElement2(ElementTyp, "Wähle eine Plane aus...", False) ' Aufforderung Catia-Fenster unten links
If Auswahl = "Normal" Then  ' wenn Auswahl erfolgt dann...
      Set Element = Selection1.Item(1)
      MsgBox Element.Value.Name & " wurde ausgewählt.", 1, "Auswahl"
      Fertig = True
  Else
      Box = MsgBox("Die Selektion wurde abgebrochen" + Chr(10) + _
      "Das Makro wurde beendet!", 48, "Benutzerabbruch")
      Exit Sub
  End If
Loop Until Fertig = True    ' verbleibe in Do...LOPP-Schleife bis was ausgewählt wurde

End Sub

'Aber wie binde ich hier jetzt das Extract ein??????????????????

Bitte um Hilfe


Gruß

Sven


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