Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    20
    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 : 20
    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

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 728
    Points : 754
    Points
    754

    Par défaut

    c'est sensé faire quoi ?

  3. #3
    Membre Expert

    Inscrit en
    décembre 2006
    Messages
    2 252
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 2 252
    Points : 1 280
    Points
    1 280

    Par défaut

    On ne connait pas tous Visual Basic...

    "Moi pas comprendre ce qui est demandé..."

  4. #4
    Membre chevronné
    Homme Profil pro
    heu...
    Inscrit en
    octobre 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : octobre 2007
    Messages : 643
    Points : 669
    Points
    669

    Par défaut

    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-

  5. #5
    Expert Confirmé Avatar de PauseKawa
    Homme Profil pro Patrice BLANGARIN
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 713
    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 713
    Points : 3 586
    Points
    3 586

    Par défaut

    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.

  6. #6
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    20
    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 : 20
    Points : 0
    Points
    0

    Par défaut

    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

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    mars 2007
    Messages
    891
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : mars 2007
    Messages : 891
    Points : 1 187
    Points
    1 187

    Par défaut

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

  8. #8
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    20
    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 : 20
    Points : 0
    Points
    0

    Par défaut

    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

  9. #9
    Membre chevronné
    Homme Profil pro
    heu...
    Inscrit en
    octobre 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : octobre 2007
    Messages : 643
    Points : 669
    Points
    669

    Par défaut

    Je ne connais rien à com, mais
    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-

  10. #10
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    20
    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 : 20
    Points : 0
    Points
    0

    Par défaut

    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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •