Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Interfaçage autre langage
Interfaçage autre langage Forum d'entraide pour l'interfaçage avec d'autres langages (ctypes, api C, swig, ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/05/2011, 16h28   #1
saimyas
Invité de passage
 
Femme
Étudiant
Inscription : avril 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 19
Points : 0
Points : 0
Par défaut Expression Item sous python

Bonjour tout le monde,

Je dois convertir un code sous Visual basic 2008 à python et j'arrive pas à trouver l'expression python de cette instruction crite sous vb 2008:
oPTSpeosNodeSimulation1 = oPTSpeosNodeRoot1.Item("Simulations")

Est ce qu'il y a une autre expression en python pour ecrir le Item?

J'ai cherché sur le net mais j'ai pas trouvé de solution...

Je vous remercie

Cordialement

Saimyas
saimyas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 16h52   #2
josmiley
Membre chevronné
 
Homme
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 728
Points : 728
c'est sensé faire quoi ?
josmiley est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/05/2011, 17h12   #3
rambc
Membre Expert
 
Inscription : décembre 2006
Messages : 2 197
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 2 197
Points : 1 221
Points : 1 221
On ne connait pas tous Visual Basic...

"Moi pas comprendre ce qui est demandé..."
rambc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 21h46   #4
N.tox
Membre chevronné
 
Homme
heu...
Inscription : octobre 2007
Messages : 636
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : heu...

Informations forums :
Inscription : octobre 2007
Messages : 636
Points : 740
Points : 740
Citation:
Envoyé par josmiley
c'est sensé faire quoi ?
Ouais, ça fait quoi ?

Et c'est quoi le type python que tu utilises pour l'objet oPTSpeosNodeSimulation1 ?
__________________
"Plus je passe de temps à apprendre à parler à un ordi,
plus je deviens aussi con que lui"
-Moi-
"La console python est votre amie, les print aussi" -Confucius-
N.tox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 07h05   #5
PauseKawa
Expert Confirmé
 
Avatar de PauseKawa
 
Homme Patrice BLANGARIN
Technicien Help Desk, maintenance, réseau, système et +
Inscription : juin 2006
Messages : 2 616
Détails du profil
Informations personnelles :
Nom : Homme Patrice BLANGARIN
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien Help Desk, maintenance, réseau, système et +
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2006
Messages : 2 616
Points : 3 728
Points : 3 728
Exact N.tox, tout vas dépendre de oPTSpeosNodeRoot1.

Bonjour saimyas,

Pourrais tu nous dire l'objet Python que tu utilise pour oPTSpeosNodeRoot1 ?
Et c'est quoi en vb ? Une collection ? C'est quoi Simulations ?

@+
__________________
Merci d'utiliser le forum pour les questions techniques.
PauseKawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 10h58   #6
saimyas
Invité de passage
 
Femme
Étudiant
Inscription : avril 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 19
Points : 0
Points : 0
Bonjour PauseKawa,N.tox, rambc et josmiley,

Je vous remercie vivement pour l'interêt que vous portez à ma question et je m'excuse pour ma réponse tardive...

Mon but et de créer une communication entre python et un logiciel de simulation (Speos) intégré sous Catia V5.

J'ai déjà un code sous visual basic qui gere cette communication et je veux le traduire en Python. Pour cela je bloque sur cette expression sous VB:

oPTSpeosNodeSimulation1 = oPTSpeosNodeRoot1.Item("Simulations")

Qui demande à Speos de nomé oPTSpeosNodeSimulation1 par Simulations (dans la liste du logiciel)

un autre exemple encore :

product1.Parameters.Item(params_name(1)).Value = passpara(1)

avec :

product1: l'objet catia
Parameters : les parametres géometriques de l'objet catia

L'expression demande au logiciel catia de donner la valeur passpara(1) à params_name(1)

Pour celà j'aimerais bien avoir l'expression correspendante en python si c'est possible

je vous remercie vivement

cordialement

saimyas
saimyas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 23h33   #7
dividee
Membre Expert
 
Homme
Inscription : mars 2007
Messages : 852
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 852
Points : 1 184
Points : 1 184
Item ? Value ? Ca me fait penser à une interface COM. C'est sans doute la méthode utilisée pour communiquer avec Catia (et/ou Speos).

Il est possible d'utiliser COM en Python avec PyWin32, mais cela nécessitera certainement que tu comprennes ce que tu fais...

Une fois l'instanciation COM effectuée, le code sera presque le même qu'en VB (la méthode Item s'appellera aussi Item en Python, puisque c'est une méthode COM, pas une méthode spécifique à un type VB).
dividee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 10h07   #8
saimyas
Invité de passage
 
Femme
Étudiant
Inscription : avril 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 19
Points : 0
Points : 0
Bonjour dividee

Effectivement j'ai installer PyWin32 et quand je fait appel à catia j'utilise ce code :

import win32com.client
>>catapp = win32com.client.Dispatch("CATIA.Application")% Etablir la communication avec catia V5

>>doc=catapp.ActiveDocument.Product
>>doc=doc.ReferenceProduct
>>nb_rayon=doc.Parameters.Item("nbrayon") % Entrer le nombre de rayon
>>doc.Update() % Mise à jour


Pour le code en VB pour lancer SPEOS qui est integré dans catia V5 est le suivant:

Dim speosCAAProduct1 As OPTSpeosCAAProduct

Dim speosNode1 As OPTSpeosNode

Dim speosNodeSimulation1 As OPTSpeosNodeSimulation

Set speosCAAProduct1 = doc.GetItem("OPTVBExtension")

Set speosNode1 = speosCAAProduct1.SpeosCAA

Set speosNodeSimulation1 = speosNode1.Item("Simulations")


j'ai essayer de rajouter ce code au premier en python:

>>speosCAAProduct1 = doc.GetItem("OPTVBExtension")
>>speosNode1 = speosCAAProduct1.SpeosCAA

jusqu'au là ça marche bien , mais une fois je rajoute cette ligne:

>>speosNodeSimulation1 = speosNode1.Item("Simulations")

j'ai ce message d'erreur :

Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
speosNodeSimulation1 = speosNode1.Item("Simulations")
AttributeError: 'function' object has no attribute 'Item'


Pour cela je comprend pas pourquoi il prend pas en compte le Item alors que dans la premier expression de Item ( >>nb_rayon=doc.Parameters.Item("nbrayon") ) c'est bien pris en compte...

Je vous remercie vivement
saimyas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h07   #9
N.tox
Membre chevronné
 
Homme
heu...
Inscription : octobre 2007
Messages : 636
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : heu...

Informations forums :
Inscription : octobre 2007
Messages : 636
Points : 740
Points : 740
Je ne connais rien à com, mais
Citation:
j'ai essayer de rajouter ce code au premier en python:

>>speosCAAProduct1 = doc.GetItem("OPTVBExtension")
>>speosNode1 = speosCAAProduct1.SpeosCAA
jusqu'au là ça marche bien , mais une fois je rajoute cette ligne:

>>speosNodeSimulation1 = speosNode1.Item("Simulations")
Il me semple qu'ici SpeosNode1 n'est pas le résultat de la méthode SpeosCAA, mais la carrément la méthode !
__________________
"Plus je passe de temps à apprendre à parler à un ordi,
plus je deviens aussi con que lui"
-Moi-
"La console python est votre amie, les print aussi" -Confucius-
N.tox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h35   #10
saimyas
Invité de passage
 
Femme
Étudiant
Inscription : avril 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 19
Points : 0
Points : 0
Re Bonjour,

Je viens de trouver la solution la voilà:

Code :
1
2
3
4
5
6
7
8
import win32com.client
 catapp = win32com.client.Dispatch("CATIA.Application")
 doc=catapp.ActiveDocument.Product
 oPTSpeosNodeRoot1=doc.GetItem("OPTVBExtension").SpeosCAA()
 oPTSpeosNodeSimulation1=oPTSpeosNodeRoot1.Item("Simulations")
 oPTSimuInverse1=oPTSpeosNodeSimulation1.Item("Simu") % Simu est le nom de la simulation  
 
oPTSimuInverse1.Update()
cordialement

saimyas
saimyas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h31.


 
 
 
 
Partenaires

Hébergement Web