Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  SelectElement2; Daten weiterverarbeiten

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:  SelectElement2; Daten weiterverarbeiten (3240 mal gelesen)
NTjaz
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 11.10.2013

MS Windows 7 Professional
64Bit, Intel Xenon CPU
E5-1620 0 @ 3.60GHz, 16
GB DDR3, Nvidia Quadro
4000, Catia V5R19

erstellt am: 22. Okt. 2013 13:22    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 an alle

hab da ein etwas größeres Problem. Bin mich grade ein paar Wochen mit der Makroprogrammierung am beschäftigen und bekomme es einfach nicht auf die Reihe.

Also es geht um folgendes, ich will/soll ein Makro erstellen was
- einen Körper einfügt (check),
- verschiedene geo. Sets in diesen Körper einfügt (check),
- beim aufrufen des Makros eine Inputbox öffnet in der der Benutzer den Körpernamen eingibt (check),
- die geo. Sets automatisch die Endung der Inputbox erhalten (check)

nun der Teil bei dem ich hänge:
- wenn alles erstellt und umbenannt wurde soll eine Messagebox erscheinen die dem Anwender sagt er soll eine Bezugsfläche auswählen (ok auch noch check),
  diese Fläche befindet sich jedoch nicht in meinem Part, sondern in dem Produkt in dem das Part als Bauteil steht.
  Diese ausgewählte Fläche soll dann als Datum in eines meiner geo. Sets eingefügt werden.
- weiterhin soll, jetzt im Part eine Linie ausgewählt werden die ebenfalls in eines der geo. Sets eingefügt wird.

- mit diesen beiden Selektionen wird dann weiter konstruiert. Verschiedenste Ebenen, Linien, Punkte etc. sollte ich noch schaffen, bin aber noch nicht so weit gekommen.


Also es geht mir eher um die Selektion, wie kann ich die ausgewählten Elemente in meine geo. Sets einfügen???


Hier mal ein Auszug aus meinem Skript der betroffenen Stelle:

Language="VBSCRIPT"
.
.
.
.
'Auswahl Bezugsfläche
MsgBox "Bitte Bezugsfläche auswählen", vbOKOnly,makroname+"  "+version
Set Selection1 = activedoc.Selection
Dim InputObjectType(0)
InputObjectType(0) = "Face"
Status=Selection1.SelectElement2(InputObjectType, "Bezugsfläche auswählen", False)
If(Status="Cancel")Then
MsgBox "Makro wurde abgebrochen", 16, makroname+"  "+version
Exit Sub
End If
.
.
.
End Sub

Danke schonmal an alle Helferlein

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: 22. Okt. 2013 15: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 Nur für NTjaz 10 Unities + Antwort hilfreich

Ich glaub Du musst Selection.Copy und Selection.PasteSpecial verwenden.

Dafür ist aber wichtig, dass Du Dich im richtigen Kontext befindest. Also PartDesign. Dafür musst Du Dich über das ProductDesign durchhangeln.

Also immer die Workbench wechseln. :-)

Ich glaub die Workbench kannst Du über das CATIA-objekt wechseln.

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 23. Okt. 2013 11: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 NTjaz 10 Unities + Antwort hilfreich

Hallo zusammen,

die Selection, bzw. das Selection-Object muss glaube ich von deinem Part stammen. Ich nehme mal an das es sich hierbei um das "activedoc" handelt.

Dann geht es nach erfolgreicher Auswahl deiner Face mit Selection1.copy weiter

Dann würde ich das Geoset (wo das Datum rein soll) deiner Selection hinzufügen Selection1.Add "Objektname des Geosets"
Selection1.Paste oder Selection1.PasteSpecial
Bei Special musst du noch den Typ mit angeben.

Am besten mal in die Automation.chm schauen. Diese liegt im gleichen Ordner wie die CNEXT.ext

Hope it helps

Gruß
Randle

------------------
MfG
Randle

! It's not a bug, it's a feature !

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

NTjaz
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 11.10.2013

MS Windows 7 Professional
64Bit, Intel Xenon CPU
E5-1620 0 @ 3.60GHz, 16
GB DDR3, Nvidia Quadro
4000, Catia V5R19

erstellt am: 24. Okt. 2013 13: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

ok danke schonmal

habe es jetzt so weit am laufen, dass ich eine fläche auswählen kann und er sie auch in das von mir gewünschte set einfügt.
ABER
er gibt mir immer die Fehlermeldung "Element erforderlich" aus
weiterhin bekomme ich die fläche nicht umbenannt, habe schon mehrere varianten ausprobiert, aber nichts hilft.
vielleicht hat ja jemand eine Idee.

Code:
.
.
.

'AUSWAHL BEZUGSFLÄCHE

'MsgBox JA/NEIN
Box=MsgBox ("Bitte Bezugsfläche auswählen", 4,makroname+"  "+version)
'WENN JA
If Box = 6 Then
'SELEKTION
Set Selection1 = activedoc.Selection
Dim InputObjectType(0)
InputObjectType(0) = "Face"
Status=Selection1.SelectElement2(InputObjectType, "Bezugsfläche auswählen", False)
If(Status="Cancel") Then
MsgBox "Makro wurde abgebrochen", 16, makroname+"  "+version
Exit Sub
End If
Else
'WENN NEIN
MsgBox "Makro wurde abgebrochen", 16, makroname+"  "+version
Exit Sub
End If

'Bezugsfläche einfügen
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item(BodyName)
Set hybridBodies1 = body1.HybridBodies
Set hybridBody1 = hybridBodies1.Item("Position_"&BodyName)
Set Selection1=UserSel.Item(1).Value
Selection1.Copy
Selection1.Clear
Selection1.Add hybridBodies1.Item("Position_"&BodyName)
Selection1.PasteSpecial "CATPrtResultWithOutLink"
Selection1.Clear

part1.update
.
.
.


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: 24. Okt. 2013 15:15    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 NTjaz 10 Unities + Antwort hilfreich

Was soll Set Selection1=UserSel.Item(1).Value machen?

Das sieht völlig falsch aus. Mindestens Selection1.Add() und warum überhaupt? Es sit doch schon selektiert, oder nicht?

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

NTjaz
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 11.10.2013

MS Windows 7 Professional
64Bit, Intel Xenon CPU
E5-1620 0 @ 3.60GHz, 16
GB DDR3, Nvidia Quadro
4000, Catia V5R19

erstellt am: 24. Okt. 2013 16: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

da haben sie völlig recht Herr schneider

ohne das Set Selection1=UserSel.Item(1).Value

läuft es.

Ich sehe halt auch grad vor lauter bäumen den wald nicht mehr, wie gesagt seit zwei Wochen beschäftige ich mich, auch eher unregelmäßig mit dem Thema Makroprogrammierung und Vorkenntnisse sind auch nicht vorhanden. 


Noch ein Tipp bezgl. der Umbenennung der Fläche?

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: 25. Okt. 2013 13:31    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 NTjaz 10 Unities + Antwort hilfreich

Selection1.Item2(1).Value.Name = "Blubb"

könnte schon funktionieren.

Ich würde Dir empfehlen Selection1.Item2(1).Value in ein eigenes Objekt zu schreiben und vor allem mal im Watchfenster (Debugger) schauen was darin landet. Es hat bestimmt eine Nameneigenschaft.

Es gäbe noch eine Methode über GetItem(), die würde ich Dir als Laien aber noch nicht empfehlen.

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

ptit.tom
Mitglied
CAD-Berater


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

Beiträge: 114
Registriert: 11.02.2005

win10, CATIA R19 bis R30

erstellt am: 30. Okt. 2013 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 NTjaz 10 Unities + Antwort hilfreich

Hallo,

Um die Kopie zu selektieren kann man die HybridShapes-Sammlung verwenden. Das kopiertes Element landet normalerweise am Ende des Geometrical Set (bei mir oTargetGS). Die Folgende Zeile benennt das letzte Element in GeoSet oTarget GS:

oTargetGS.HybridShapes.Item(oTargetGS.HybridShapes.Count).Name = "Blubb"

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

NTjaz
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 11.10.2013

MS Windows 7 Professional
64Bit, Intel Xenon CPU
E5-1620 0 @ 3.60GHz, 16
GB DDR3, Nvidia Quadro
4000, Catia V5R19

erstellt am: 01. Nov. 2013 09: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

Hallo

danke für die Hilfe.

@ptit.tom
mit der count Taktik hat es funktioniert. Vielen Dank

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