Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Makro: Selektion Kanten und Extruieren ?

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
KISTERS 3DViewStation mit neuer Zerschneidefunktionen und erweitertem PMI-Support, eine Pressemitteilung
Autor Thema:  Makro: Selektion Kanten und Extruieren ? (2422 mal gelesen)
JuliJane
Mitglied
Projektingenieurin


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

Beiträge: 11
Registriert: 01.09.2011

Windows7 prof./V5 R18

erstellt am: 11. Okt. 2011 11:26    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


makrohilfe.JPG

 
Hallo!
ich komme nicht weiter 

mein Vorhaben:
Die Kanten der Enden eines Rohres (stupider Solid) als Flächen extruieren.

- Kante selektieren (BRep)
  (Selektion während der Laufzeit)
- unabhängig ob PartDesign oder GeneralShapeDesign
- Kante als Fläche extruieren (Referenzplane über Namen dek.)

1. Bekomme Hrn. Ziethens Makro nicht für HybridBodies umgeschrieben:

Sub CATMain ()

' Auswahl festlegen -----------------------------------------------
  Dim Was(2)
  Was(0) = "Pad"
  Was(1) = "Line"
  Was(2) = "Pocket"    #hier gerne Kanten selektieren#

' Selektion definieren und leeren ---------------------------------
  Dim UserSel As Selection
  Set UserSel= CATIA.ActiveDocument.Selection
  UserSel.Clear

' Selektion vornehmen lassen --------------------------------------
  Dim E As CATBSTR
  E = UserSel.SelectElement2(Was, "Pad oder Linie oder Pocket", False)

  If E = "Normal" Then
      MsgBox(UserSel.Item(2).Value.Name)
  Else
      MsgBox ("Abbruch")
  End If

' Selektion freigeben --------------------------------------------
  UserSel.Clear

End Sub


2. Wie und wo bekomme ich eine erfolgreie Selektion nun in ein Makro unter?

Ich danke für Eure Hilfe !!!

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

DanielFr.
Ehrenmitglied V.I.P. h.c.
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 12. Okt. 2011 09:27    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 JuliJane 10 Unities + Antwort hilfreich

Hallo,

ähm ja...Erst mal eine Frage dazu:

- Willst du das eine neue BRep erzeugt wird wenn du ein Pad selektierst oder ist der Filter einfach nur abgetippt aber noch nicht geändert?

Anbei mal der kommentierte Code, damit du weißt was genau während der interaktiven Selektion passiert:

Code:

  '***ARRAY-DEKLARATION FUER SELEKTIONSFILTER
  Dim Was(2)

  '***ARRAY Zuweisung (String) welche Objekttypen selektiert werden duerfen
  Was(0) = "Pad"
  Was(1) = "Line"
  Was(2) = "Pocket"    #hier gerne Kanten selektieren#

  '***Selektionsobjekt deklarieren und instanzieren
  Dim UserSel As Selection
  Set UserSel= CATIA.ActiveDocument.Selection

  '***Selektion leeren (keine Pre-Selektion) ist aber nicht zwingend erforderlich da du das auch beim Methodenaufruf machen kannst
  UserSel.Clear

  '***Sekleration des CallBack Elements (String)
  Dim E As CATBSTR

  '***Interaktive Selektion ausführen (Methodenaufruf)
  E = UserSel.SelectElement2(Was, "Pad oder Linie oder Pocket", False)

  '***CallBack auswerten und ggf. Objekt der Selektion weiterverarbeiten
  If E = "Normal" Then
      MsgBox(UserSel.Item(2).Value.Name)
  Else
      MsgBox ("Abbruch")
  End If

  '***Selektion leeren
  UserSel.Clear


Ansonsten kann ich dir sagen das es nicht ganz so einfach ist wie es sich vielleicht anhört. Das Problem ist das du Berandungskurven selektierst (also BREPS). Diese liegen in der Selektion aber als Objekt vor und können NICHT einfach mit einem CreateReferencefromObject in ein Referenzobjekt konvertiert werden. Dieses brauchst du aber zwingend (und zwar zweimal (einmal die Kante selbst und einmal die Richtung)) um alle Parameter der Methode AddNewExtrude ordentlich füllen zu können. D.h. es muss eine explizite String-Konvertierung vorgenommen werden und die Referenz dann im Anschluss mit der Methode CreateReferenceFromBRepName erzeugt werden!

Programmierarbeit für einen erfahrenen Programmierer min. 1,5h!!!

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

JuliJane
Mitglied
Projektingenieurin


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

Beiträge: 11
Registriert: 01.09.2011

Windows7 prof./V5 R18

erstellt am: 12. Okt. 2011 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

ich danke dir für deine antwort,
du hast mir um viele schritte weitergeholfen - nette grüße von mir.

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)2025 CAD.de | Impressum | Datenschutz