Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Selektionen eines Parts im Product

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:  Selektionen eines Parts im Product (5757 mal gelesen)
IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 10. Sep. 2009 10: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

Hallo,

ich habe mal wieder eine Frage: Ich möchte gerne eine Achse eines Parts anklicken, welches im Product verbaut ist. Das Part ist im Grunde eine Platte und besitzt eine Bohrung in der Mitte. Wenn ich jetzt den Benutzer auffordere, die Achse der Bohrung direkt im 3D Modell anzuwählen (nicht im Strukturbaum), dann kann nur das gesamte Part angewählt werden und dementsprechend wird mir auch nur dessen Name zurückgegeben.

Geplant ist eigentlich den Pfad der Achse auszulesen, um eine Bedingung nachher anzusetzen.

was ich bisher habe:

Code:

'Achse durch selektion bestimmen--------------------
Dim Was1(0)
Was1(0) = "Line"


Dim Usersel1
Set Usersel1 = CATIA.ActiveDocument.selection
Usersel1.Clear

Dim Productname1
Dim Auswahl1

Auswahl1 = Usersel.SelectElement2(Was, "Achse wählen", False)

If Auswahl1 = "Normal" Then

    Productname1 = Usersel.Item(1).Value.Name
    MsgBox (Usersel.Item(1).Name)
    MsgBox (Usersel.Item(1).Value.Name)
   
Else

MsgBox ("Abbruch")
End If

Usersel1.Clear


[Diese Nachricht wurde von IIYTII am 10. Sep. 2009 editiert.]

[Diese Nachricht wurde von IIYTII am 10. Sep. 2009 editiert.]

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

DanielFr.
Moderator
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: 10. Sep. 2009 17:39    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 IIYTII 10 Unities + Antwort hilfreich

Hallo,

"selectElement2" funktioniert nur im aktiven Dokument. Ist dies ein Produkt kannst du nur Features des Produktes selektieren. In deinem Fall selektiert er richtigerweise die komplette Instanz. Versuch mal das "SelectElement4". Hiermit ist es möglich auch in anderen Dokumenten (also in der Partinstanz) zu selektieren.

Hier mal der Auszug aus der *.chm Datei:

Func SelectElement4( CATSafeArrayVariant  iFilterType,
CATBSTR  iActiveDocumentMessage,
CATBSTR  iNonActiveDocumentMessage,
boolean  iTooltip,
CATIADocument  oDocument) As CATBSTR 


iFilterType
An array of strings constants defining the automation object types with which the selection will be filtered.

iActiveDocumentMessage
A string which instructs the user what to select, which will be displayed into the active document. This string is displayed in the message area located at the left of the power input area.

iNonActiveDocumentMessage
A string which instructs the user what to select, which will be displayed into the non active document.

iTooltip
Displays a tooltip as soon as an object is located under the mouse without being selected.

oOutputState
The state of the selection command once SelectElement3 returns. It can be either "Normal", "Cancel", "Undo".

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

IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 11. Sep. 2009 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

Danke für die Antwort,

das Problem ist wiedermal das leidige CATBSTR. Da ich in CATvba programmiere, kennt er diesen Befehl nicht und daher habe ich den Fehler "Type missmatch"

Dim E
Dim E as object

geht auch nicht

was tun?


Code:
E = Usersel.SelectElement4(Achse, "Achse wählen")

[Diese Nachricht wurde von IIYTII am 11. Sep. 2009 editiert.]

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

Tstone
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 163
Registriert: 04.06.2003

Dell Precision 470
Intel Xeon CPU 3,00GHz
2GB Ram
Microsoft Windows XP
Catia V5 R18 SP6
VB2005

erstellt am: 11. Sep. 2009 12:55    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 IIYTII 10 Unities + Antwort hilfreich

Hallo,
dein Problem sind immer noch nicht die CATBSTR (wie gesagt, sind einfache String-Varianten).
Vielleicht schaust du dir mal die Anzahl der Argumente an die  du an SelectElement4 übergibst. Wobei das erstmal nicht deinen Type missmatch erklärt.
Die Fehlermeldung bezieht sich auch auf die Zeile:
E = Usersel.SelectElement4(Achse, "Achse wählen")
????

------------------
Grüße TStone
   "Respektiere die Macht der Worte, wähle sie mit Bedacht!"

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

IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 11. Sep. 2009 13: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

Ja, ich glaube das mit dem Type missmatch lag daran, dass ich "Achse" nicht als Array definiert hatte...

Code:
Dim Productname
Dim Achsenname
Dim Oberflachenname
Dim E
Dim Usersel
Set Usersel = CATIA.ActiveDocument.selection

Dim Achse(1)
Achse(0) = "Line"

E = Usersel.SelectElement4(Achse, "Achse wählen")

If E = "Normal" Then

MsgBox (Usersel.Item(1).Value.Name)
Achsenname = Usersel.Item(1).Value.Name

Else

MsgBox ("Abbruch")

End If

Usersel.Clear


nächster Fehler ist: Wrong numer of arguments or invalid property assignment

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

Tstone
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 163
Registriert: 04.06.2003

Dell Precision 470
Intel Xeon CPU 3,00GHz
2GB Ram
Microsoft Windows XP
Catia V5 R18 SP6
VB2005

erstellt am: 11. Sep. 2009 13: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 IIYTII 10 Unities + Antwort hilfreich

Hallo,
wie gesagt: Schau dir die Anzahl der Argumente an, die Du an SelectElement4 übergibst.

------------------
Grüße TStone
   "Respektiere die Macht der Worte, wähle sie mit Bedacht!"

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

IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 11. Sep. 2009 13: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

Code:
Sub main()

Dim d
Dim was(1)
was(0) = "Pad"
was(1) = "Line"
Set d = Nothing

Dim usersel
Set usersel = CATIA.ActiveDocument.selection
usersel.Clear

Dim e As String
e = usersel.SelectElement4(was, "Achse selektieren", "Nicht aktiv", True, d)

MsgBox (d.Name & ":" & e)

usersel.Clear

End Sub



Habe es jetzt hinbekommen, dass wenigstens keine Fehlermeldung kommt. Eine Achse auswählen, kann ich jedoch immernoch nicht....

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 11. Sep. 2009 16:29    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 IIYTII 10 Unities + Antwort hilfreich

Hallo,

dann kann jetzt wieder der Trick kommen, den Filter auf z.B. "AnyObject" zu setzen um alles zu erlauben, den gewünschten Object selektieren und anschließend über TypeName(Selection.Item(1).Value) an den Typ.
Diesen Typ kannst du dann in dein Filter was(1)setzen.

Gruß,
Zoltan

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

IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 14. Sep. 2009 08:11    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

Danke für die Antworten, leider auch hier negativ.

Trotz "AnyObject" klicke ich auf eine Achse und bekomme als Ausgabe eine Msgbox mit dem obergeordneten Productnamen. Leider nicht den Namen der Achse :-(

Jemand noch eine Idee? Macht es evtl. Sinn einen Benutzerauswahlfilter zu setzen? Kann mir vorstellen, dass dann dennoch das Product ausgelesen wird, anstatt die Inhalte des Parts. Die Achse wird auch nicht gefangen...

Code:
Sub main()

Dim i As Integer
i = 0

Do Until i = 3

Dim e
Dim filter(0)
Dim d As Document
Set d = Nothing
Dim usersel
Set usersel = CATIA.ActiveDocument.selection

i = i + 1
filter(0) = "AnyObject"

e = usersel.SelectElement4(filter, "Achse selektieren", "Nicht aktiv", True, d)

MsgBox (d.Name & ": " & e)


Loop

End Sub


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

MarkusK
Mitglied



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

Beiträge: 130
Registriert: 09.08.2002

Dell Precision T5500
Intel Xenon X5560 4x 2,8 GHz
12 GB Ram
NVIDIA Quadro FX 3800
Win XP
Catia V5R19 SP3

erstellt am: 15. Sep. 2009 09:38    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 IIYTII 10 Unities + Antwort hilfreich

Hallo IIYTII

ich beschäftige mich derzeit mit was ähnlichem, daher interesiert mich das Thema auch.
Nur habe ich nocht nicht ganz ganau verstanden, was deine Vorraussetzungen sind.

Wenn du das Makro startets, ist dann das Produkt aktiv, oder eine Zeichnung?
Ist diese "Achse" in der Bohrung tatsächlich eine Linie oder meinst du die Mittellienie, die auch bei der Bedingugserzeugung oder beim Messen angedeutet wird.

------------------
Gruss Markus

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

IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 15. Sep. 2009 13:55    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

Genau, also ich befinde mich in einem Product. Derzeit habe ich mir eine simple Lochplatte gebaut und möchte die Achse einer Bohrung selektieren und dessen Namen auslesen, so dass ich diese Achse in eine Variable speicher und später benutzen kann um z.B. einen Constraint durch ein Makro anzulegen...

Derzeit bekomme ich aber immer als Ausgabe: Testbaugruppe.PRODUCT:UNDO (sowas ähnliches)
und leider nicht den Achsenpfad, sondern nur den Namen, der übergeordneten Baugruppe, in dem das Part liegt.

Wenn ich vor dem starten meines Makros alle Achsen und Flächen selektiere, dann läuft es wunderbar durch und legt auch alle Constraints höchst variable an, von daher bin ich auf dem Gebiet schonmal weiter. Jedoch wäre es benutzerfreundlicher, wenn man realtime mäßig die Selektionen nacheinander durchführen kann. Derzeit bin ich schon soweit, dass ich ins makro geschrieben habe, dass die STRG Taste zunächst für 3 Selektionen Makromäßig aktiv bleibt um eine realtime Selektion zu "simulieren". Aber das ist oberster Fusch am Bau und ich hätte es gerne anders...

Gruß

[Diese Nachricht wurde von IIYTII am 15. Sep. 2009 editiert.]

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 16. Sep. 2009 14: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 Nur für IIYTII 10 Unities + Antwort hilfreich

Hallo YT,

Problem ist mir bekannt, habe ich mich während meiner Diplomarbeit mit herumgeschlagen. Weder Usersel während des laufenden Makros, noch Usersel vor Starten des Makros hat funktioniert. Habe es jedoch nur in vba versucht, versuch es mal in VBS, vllt klappt es ja da.

Gruß
Thomas

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

Bernod
Mitglied



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

Beiträge: 40
Registriert: 03.03.2010

erstellt am: 23. Apr. 2010 16: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 IIYTII 10 Unities + Antwort hilfreich

Hallo,

ich möchte diese Frage mal wieder hochschieben. Es muss doch möglich sein SelectElement4 korrekt anzuwenden?!

Ich habe derzeit folgende Situation:
- Ich habe ein Product, in diesem befinden sich 2 Parts
- Als aktives Dokument ist das Part 2 gesetzt
- Ich möchte einen Punkt aus dem Part 1 selektieren
- Ich verwende vba

Code:
01     Dim Filter(0)
02       Filter(0) = "Point"
03   'Selektion definieren und leeren ----------------------------------
04       Dim UserSel As Object
05       Set UserSel = CATIA.ActiveDocument.Selection
06       UserSel.Clear
07   'Selection vornehmen lassen ---------------------------------------
08       Dim intSelAbfrageStr As String
09       Dim D As Document
10       Set D = Nothing
11       intSelAbfrageStr = UserSel.SelectElement4(Filter, "Bezugspunkt oben waehlen.", "Nicht aktiv", True, D)
   
12       MsgBox (D.Name & ": " & intSelAbfrageStr)

Als Ergebnis bekomme ich entweder:
- Nach der Selektion des Punktes die Fehlermeldung: Runtimeerror xxxxxxx "Method SelectElement4" of object "SelectioN" failed
- oder nach der Selektion des Punktes die gewünschte MsgBox mit dem Inhalt "Undo".. also als Wert für die Variable "intSelAbfrageStr"

Woran kann das liegen?

Gruß,
Bernod


PS: Als Beispiel evtl. der Code aus dem Ziethen:

Code:
Dim E As String
Dim Filter(0)
Dim D As Document
Set D = Nothing
E = Selektion.SelectElement4(Filter, "Punkt selektieren", "Nicht aktiv", True, D)

MsgBox(D.Name & ":  " & E)


Und noch ein Beispiel aus der v5Automation:

Code:
The following example supposes a part, containing a pad, and drawing are currently edited, the drawing window beeing the current window. It asks the end user to select a 2-D topological entity, such as a Plane , in a part. Then it creates a front view in the drawing, projecting the 3D geometry onto the selected 2-D topological entity.

Dim DrawingSelection,DrawingSheets,DrawingSheet,DrawingViews,DrawingFrontView : ReDim DrawingSelectionAtBeginning(1)
Dim Status,InputObjectType(0),Plane,Drawing,DrawingViewGenerativeBehavior,V1(2),V2(2),PartDocument
Set Drawing = CATIA.ActiveDocument : Set DrawingSelection = Drawing.Selection : Set DrawingSheets  = Drawing.Sheets
Set DrawingSheet = DrawingSheets.ActiveSheet
'We save the current selection content
ReDim DrawingSelectionAtBeginning(DrawingSelection.Count2)
for SelectionObjectIndex = 0 to DrawingSelection.Count2-1
    Set DrawingSelectionAtBeginning(SelectionObjectIndex) = DrawingSelection.Item2(1).Value
next
SelectionAtBeginningLength = DrawingSelection.Count2
'Feature creation
InputObjectType(0)="BiDimInfinite"
Status=DrawingSelection.SelectElement4(InputObjectType,"Select a 2-D topological entity in a 3-D geometry", _
                                        "Select a 2-D topological entity",false,PartDocument)
if ((Status = "Cancel") Or (Status = "Undo") Or (Status = "Redo")) then
'  We restore the selection to its initial content
    PartDocument.Selection.Clear
    for SelectionObjectIndex = 0 to SelectionAtBeginningLength-1
        DrawingSelection.Add DrawingSelectionAtBeginning(SelectionObjectIndex)
    next
    Exit Sub
else
    Set BiDimFeature = PartDocument.Selection.Item2(1).Value
    BiDimFeatureType = TypeName(BiDimFeature)
    if ((BiDimFeatureType="Plane") Or (BiDimFeatureType="PlanarFace")) then
      BiDimFeature.GetFirstAxis V1
      BiDimFeature.GetSecondAxis V2
    else
      Exit Sub
    end if
'  We create a view called "Front View" in the current sheet, using Plane as projection plane, and whose origin
'  coordinates are 300,150
    Set DrawingFrontView = DrawingSheet.Views.Add("Front View")
    Set DrawingViewGenerativeBehavior = DrawingFrontView.GenerativeBehavior
    DrawingViewGenerativeBehavior.Document = PartDocument
    DrawingViewGenerativeBehavior.DefineFrontView V1(0), V1(1), V1(2), V2(0), V2(1), V2(2)
    DrawingFrontView.x = 300
    DrawingFrontView.y = 150
    DrawingViewGenerativeBehavior.Update
'  We clear the PartDocument Selection object
    PartDocument.Selection.Clear
end if



[Diese Nachricht wurde von Bernod am 23. Apr. 2010 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: 23. Apr. 2010 19: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 Nur für IIYTII 10 Unities + Antwort hilfreich

Servus
IMHOIn my humble oppinion (Meiner Meinung nach) ist SelectedElement4 nicht dass was du suchst. SelectedElement4 ist für das Selektieren von Objekten in einem anderem Fenster/Dokument (zB Fläche im Part aus einer Drawing heraus) und nicht im selben Product.

Gruß
Bernd

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

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

DanielFr.
Moderator
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: 26. Apr. 2010 10:18    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 IIYTII 10 Unities + Antwort hilfreich

Hallo,

wie Bernd schon sage, die SelectElement4 Methode ist für eine externe Selektion (also Fensterwechsel) gedacht. Bei dir funktioniert das mit der SelectElement2 Methode. Hier mal ein Beispiel. Bei der Selektion ist es dabei völlig unerheblich welches Bauteil oder welche Baugruppe dabei aktiv ist. Die Hauptsache ist das das zu selektierende Feature im selben Fenster existiert.

Code:

Option Explicit

Sub CATMain()

    Dim intRootDocObj As ProductDocument
    Dim intSelObj As Object 'Selection
    Dim intSelFilter(0)
    Dim intSelStateStr As String
   
    On Error Resume Next
    Set intRootDocObj = CATIA.ActiveDocument
    If Err.Number <> 0 Then
        MsgBox "Falscher Dokumententyp!", vbExclamation, "ERROR"
        Exit Sub
    Else
        On Error GoTo 0
    End If
   
    Set intSelObj = intRootDocObj.Selection
    intSelObj.Clear
   
    MsgBox "Bitte selektieren Sie einen Punkt" + vbNewLine + "ESC zum Abbrechen der Selektion und des Makros", vbInformation, "Punkt selektieren"
    intSelFilter(0) = "Point"
   
    intSelStateStr = intSelObj.SelectElement2(intSelFilter, "Bitte Punkte selektieren / ESC zum Abbrechen", False)
    If intSelStateStr = "Normal" Then
        MsgBox "Sie haben folgenden Punkt selektiert:" + vbNewLine + vbNewLine + _
                "Punktname:" + vbTab + intSelObj.Item(1).Value.Name + vbNewLine + _
                "Partname:" + vbTab + intSelObj.Item(1).Value.Parent.Parent.Parent.Parent.Name, vbInformation, "Selektion erfolgreich"
        Exit Sub
    Else
        MsgBox "Die Selektion war NICHT erfolgreich", vbExclamation, "Selektion nicht erfolgreich"
        Exit Sub
    End If

End Sub


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

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