Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  VBScript / Object required error on Selection

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:  VBScript / Object required error on Selection (1610 mal gelesen)
omz
Mitglied


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

Beiträge: 3
Registriert: 06.04.2005

erstellt am: 06. Apr. 2005 18: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

Hallo,

Vielen Danke für Ihr sehr interessant Forum !

Ich wohne in Frankreich,  und Deutsch ist nicht so einfach für mich, so Bitte entchuldigen Sie mich für alle Fehler !!  ;-)

I habe ein Problem mit einem VBScript makro, der die folgenden enthält :

...
mySel = CATIA.ActiveDocument.Selection.selectElement2(point line curve, mymessage, false)
if mySel = "Normal" and Selection.count=1 then
set myEntity = Selection.Item(1).Value
...

Das war OK mit R12 und R13, aber nicht mit R14 (SP2), nur fûr "line" und "curve" ; Punkte selektion ist OK (!?)

Das error ist :

VBScript runtime error
Object required: Selection.Item(...)

Hat Jemand solche Problem gesehen ?

Danke für Ihr Hilfe aus -basic !- Deutsch oder Englich !  ;-)

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

gv
Mitglied
structural engineer


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

Beiträge: 12
Registriert: 28.03.2005

erstellt am: 06. Apr. 2005 19: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 Nur für omz 10 Unities + Antwort hilfreich

meiner erfahrung nach ist es beim selektieren haeufig wichtig, das wenigstens das uebergeordnete object aktiv ist (bevor du dein script startest).

aktivier (double click) einfach das product, welches am hoechsten im Object tree ist und versuch's noch mal.

gruesse aus new york,
Gregor

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 07. Apr. 2005 06: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 Nur für omz 10 Unities + Antwort hilfreich

Hallo omz,

versuch es einmal mit fogendem Code:

Dim InputObjectType(2)
Dim Status

InputObjectType(0) = "Point"
InputObjectType(1) = "Line"
InputObjectType(2) = "HybridShapeCurveExplicit"

Set mySel = CATIA.ActiveDocument.Selection 

Status = mySel.SelectElement2(InputObjectType, mymessage, false )

If (Status = "Normal") and (mySel.count=1) Then
  Set myEntity = mySel.Item(1).Value 
End if

Funktioniert in R14Sp3

Gruss

TomTom

------------------
tomtom1972

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

omz
Mitglied


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

Beiträge: 3
Registriert: 06.04.2005

erstellt am: 07. Apr. 2005 15: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

Danke schön für Ihre Antworte !

Diese Lösung ist OK für eine konstant InputObjectType. Ich brauche verschiedene InputOjectType zu benutzen, e.g. "Points" oder "Points or Lines", etc. Was steht in meine makro ist :

...
Set mySel = CATIA.ActiveDocument.Selection

if isPoint and isLine and isCurve then
redim InputObjectType(2) as variant
InputObjectType(0)="Point"
InputObjectType(1)="Line"
InputObjectType(2)="HybridShapeSpline"

elseif isPoint and isLine then
redim InputObjectType(1) as variant
InputObjectType(0)="Point"
InputObjectType(1)="Line"

elseif isPoint and isCurve then
redim InputObjectType(1) as variant
InputObjectType(0)="Point"
InputObjectType(1)="HybridShapeSpline"

elseif isPoint then
redim InputObjectType(0) as variant
InputObjectType(0)="Point"

end if
myMsg = "Sel " & Join(InputObjectType, " or ") & " (Ctrl+Z or Undo to quit)"
Status = mySel.selectElement2(InputObjectType,myMsg,false)

If Status = "Normal" and mySel.count=1 Then
Set myEnt = mySel.Item(1).Value
...

Ausserdem steht das in eine Schleife : Mit "dim InputObjectType(2)" zu beginnen gibt es ein "Type Mismatch" code am erste Shleife...

Nach anderen Testen : es scheint, dass nur "InputObjectType(0)" (i.e. "Points") verstanden ist. Volgenden linien wurden ignorieren...

(Pfff... Nicht so einfach, dieses Problem aus Deutsch zu erklären !!)

Danke noch !

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 07. Apr. 2005 21:21    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 omz 10 Unities + Antwort hilfreich

Hello again,

It s also possible to communicate in english.

I still don t understand your problem.
The InputObjectType is not constant, it s alternating. Because of
that you dim it as a array. The selection.item(1).value can be a point, a line OR a curve-object, but not all at once. But when you paste your selection into a loop, the InputObjectType can be different for each of the loops.

Or do you want to make a multi-selection of elements with a different ObjectType?
In this case you have to use the SelectElement3–method.
Can you circumscribe your intention more detailed?

And now it s up to me to apologise for all the spelling mistakes.

Yours

TomTom

------------------
tomtom1972

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 08. Apr. 2005 07:16    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 omz 10 Unities + Antwort hilfreich

Hello omz,

this morning i read your posting at the coe-forum with the detailed circumscription of your problem.
I am thinking the same as craig helm does. Maybee this will help you:

We have had some problems with all of the selection-methods during the changing from R12 (13) to the Release 14.

The most important thing is, that you are allowed to make only one Set of the Selection (Set MySel = Catia.ActiveDocument.Selection) in the R14. That was different in R12.

If your are working with different moduls in VB6.0 using more than one set …, you get a error-message and it s not possible to execute the script (exe). Also if you use an if ..then.. else logic and the script runs only one of the mods. The same problem you will have when doing the set … in a loop (more than one time). Anyway we had this problem in VB6.0

The next is, that the SelectElement2 and 3 –method is using an array to define the different InputObjectTypes of the Selection. So please don t dim the selection as Selection, else you get an error. Dim the Seleticon as Object (or even don t dim it).

Please let me know when you solve your problem.

Greetings

TomTom

------------------
tomtom1972

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

omz
Mitglied


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

Beiträge: 3
Registriert: 06.04.2005

erstellt am: 08. Apr. 2005 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

Hello TomTom,

You are right, and actually this selectElement2() problem seems to have already been submitted to the IBM support (APAR HD28946) even though I did not find any downloadable fix on the web site... I will try and see with them wether this might be corrected in future SP or versions... Otherwise I am afraid I will have to completely re-develop this macro for R14...  :-(

Thank you very much for your help !

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

93Aero
Mitglied
Ing


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

Beiträge: 106
Registriert: 02.12.2004

erstellt am: 02. Jun. 2005 11:47    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 omz 10 Unities + Antwort hilfreich

Das heißt, die Selection ist leer. Probier so:

On Error Resume Next
set myEntity = Selection.Item(1).Value

If Err.Numer <> 0          ' Some eroor occured
    MsgBox "You failed to select something interesting... :-("
Else
...                        ' No error, keep on running
End If

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