rapprochement entre top solid et visual basic 6

Tous sujets concernant le développement spécifique de TopSolid avec l'interface COM, le langage LIP, la programmation de l'API en VB...

Modérateurs : remi77, D@vid, Alexis GERARD

Répondre
Avatar du membre
jerome
Lieutenant-colonel
Lieutenant-colonel
Messages : 604
Enregistré le : 03 mars 2008, 21:05
Version TopSolid : 7.6
Module TopSolid : TopSolid'Design
Localisation : St Malo

rapprochement entre top solid et visual basic 6

Message non lu par jerome »

bonsoir,

je m'essaie a la programmation et je bute sur une ligne prise dans le dictatiel api

Code : Tout sélectionner

Set doc = TopApp.Documents.Open("C:\Projects\cadre.top")
il bug a cette instruction
est ce que quelqu'un as une idee

merci
JEROME
il y a toujours plus d'idées dans deux têtes que dans une.
benoit
Sous-lieutenant
Sous-lieutenant
Messages : 254
Enregistré le : 23 nov. 2006, 14:33

Message non lu par benoit »

c'est pas tout simplement projects qui en francais donne projets (sans le c) ??
Avatar du membre
pierrot
Adjudant
Adjudant
Messages : 98
Enregistré le : 07 nov. 2008, 10:09
Localisation : Landerneau (finistère)
Contact :

Message non lu par pierrot »

Salut jerome,

tout d'abord qu'entend tu par bug?
l'instruction engendre une erreur dans VB?
Il ne se passe rien du tout?
Topsolid ne trouve pas le document?

Par simple verification, regarde si tu as bien définit tes variables par:
Dim TopApp As TopSolid.Application
et
Dim doc As TopSolid.Document
avant de de lancer ton ouverture de document.

Autre chose qui me vient à l'esprit, si TS n'est pas ouvert auparavant, tu ne verra pas ce qui se passe, une session sera bien ouverte mais sera invisible. si je me souvient bien il faut ajouter une ligne comme ceci:
TopApp.Visible=True
Enfin je ne sais plus trop, il y a quelques temps que je n'y ai pas retouché.

Tiens moi au courant et si tu as des soucis, n'hésites pas.
Bon courage
:wink:
Pierrot

Le monde du partage devra remplacer le partage du monde (Claude Lelouch).

la cao entre amis
Avatar du membre
jerome
Lieutenant-colonel
Lieutenant-colonel
Messages : 604
Enregistré le : 03 mars 2008, 21:05
Version TopSolid : 7.6
Module TopSolid : TopSolid'Design
Localisation : St Malo

Message non lu par jerome »

salut ,
merci benoit pour ton aide , je l'avait pas vu celle
apres plusieurs essai , sa ne marche toujours pas
voici le petit programme

Code : Tout sélectionner

Dim TopApp As TopSolid.Application
Dim TopDoc As TopSolid.DocumentDesign

Private Sub Command1_Click()

Dim a As TopSolid.Parameter
Dim b As TopSolid.Parameter
Dim c As TopSolid.Parameter
Dim e As TopSolid.Parameter

Set a = TopDoc.Parameters.AddBasic = Val(textbox1.Text, "mm")
Set b = TopDoc.Parameters.AddBasic = Val(textbox1.Text, "mm")
Set c = TopDoc.Parameters.AddBasic = Val(textbox1.Text, "mm")
Set e = TopDoc.Parameters.AddBasic = Val(textbox1.Text, "mm")



End Sub

Private Sub Form_Load()
 
' open document

Set doc = TopApp.Documents.Open("C:\Projets\cadre.top")

End Sub

salut pierrot,
je viens de voir ta solution ,
je vais etudiez ça et je te tiens au courant de mon avancez

merci
JEROME
il y a toujours plus d'idées dans deux têtes que dans une.
Avatar du membre
jerome
Lieutenant-colonel
Lieutenant-colonel
Messages : 604
Enregistré le : 03 mars 2008, 21:05
Version TopSolid : 7.6
Module TopSolid : TopSolid'Design
Localisation : St Malo

Message non lu par jerome »

salut pierrot

l'erreur qu'il me signal est la suivante :
Variable objet ou variable bloc With non définie (erreur 91)

et toujours sur la meme ligne
JEROME
il y a toujours plus d'idées dans deux têtes que dans une.
Avatar du membre
pierrot
Adjudant
Adjudant
Messages : 98
Enregistré le : 07 nov. 2008, 10:09
Localisation : Landerneau (finistère)
Contact :

Message non lu par pierrot »

Le problème vient bien que tu utilise la variable doc avant de l'avoir définie par :
Dim doc
Je pense en fait que la variable que tu souhaite utiliser est TopDoc et non doc.
Pour y voir plus clair, je te propose la traduction de la ligne:

dim----------------TopDoc-----AS------Topsolid.DocumentDesign.
Créer la variable TopDoc en tant que document de TS design

Donc si tu souhaite ouvrir ton fichier tu doit bien utiliser la variable TopDoc

essaye et tiens moi au courant
Pierrot

Le monde du partage devra remplacer le partage du monde (Claude Lelouch).

la cao entre amis
Avatar du membre
jerome
Lieutenant-colonel
Lieutenant-colonel
Messages : 604
Enregistré le : 03 mars 2008, 21:05
Version TopSolid : 7.6
Module TopSolid : TopSolid'Design
Localisation : St Malo

Message non lu par jerome »

salut,

j'ai fait pas mal d'essai ,
toujours le meme souci

merci, bonne soiree.
JEROME
il y a toujours plus d'idées dans deux têtes que dans une.
alex
Première Classe
Première Classe
Messages : 12
Enregistré le : 22 nov. 2006, 19:16
Localisation : Saint Maur (94)

Message non lu par alex »

bonjour,

il ne faut pas oublier également de lier le projet VB à la bibliothèque topsolid.
J'utilise VB2008 express, dans l'explorateur de solutions il faut ajouter une référence (sélection de l'objet topsolid).
j'ai pas mal buté la dessus avant de pouvoir lancer mes premières compilations
Avatar du membre
jerome
Lieutenant-colonel
Lieutenant-colonel
Messages : 604
Enregistré le : 03 mars 2008, 21:05
Version TopSolid : 7.6
Module TopSolid : TopSolid'Design
Localisation : St Malo

Message non lu par jerome »

alex a écrit :bonjour,

J'utilise VB2008
bonjour alex

j'ai mis les references partout et ca ne fonctionne toujours pas

j'ai voulu essayer VB2008 express , mais la , c'est encore pire
je rame totalement
JEROME
il y a toujours plus d'idées dans deux têtes que dans une.
alex
Première Classe
Première Classe
Messages : 12
Enregistré le : 22 nov. 2006, 19:16
Localisation : Saint Maur (94)

exemple envoi de paramètres

Message non lu par alex »

je ne vois pas alors,

voici un exemple d'envoi depuis VB de paramètres au modèle CAO :
(envoi largeur hauteur et profondeur d'un caisson)

Code : Tout sélectionner

Private Sub SendTopsolid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SendTopsolid.Click
        Dim doc As TopSolid.Document
        Dim value As Double
        TopApp = New TopSolid.Application

     
        doc = TopApp.Documents.Open("caisson.top")
        value = CInt(txtLargeur.Text)
        doc.Parameters("L_c").SetConvertedValue(value, "mm")
        value = CInt(txtHauteur.Text)
        doc.Parameters("H_c").SetConvertedValue(value, "mm")
        value = CInt(txtProfondeur.Text)
        doc.Parameters("P_c").SetConvertedValue(value, "mm")
        

        'sauvegardes des documents

        doc.Regenerate()
        doc.SaveAs("chemin du fichier à sauvegarder", False)
      
    End Sub
Cette solution fonctionne sous VB2008 express
Avatar du membre
jerome
Lieutenant-colonel
Lieutenant-colonel
Messages : 604
Enregistré le : 03 mars 2008, 21:05
Version TopSolid : 7.6
Module TopSolid : TopSolid'Design
Localisation : St Malo

Message non lu par jerome »

bonjour,
merci alex pour l'exemple
chez moi, sa ne marche , voici une copie d'ecran du resultat
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
JEROME
il y a toujours plus d'idées dans deux têtes que dans une.
alex
Première Classe
Première Classe
Messages : 12
Enregistré le : 22 nov. 2006, 19:16
Localisation : Saint Maur (94)

Message non lu par alex »

bonjour,
Ce type de message m'est déjà arrivé (pas sur toutes les applis)
Une solution a été la suivante :
ouvrir topsolid
charger le fichier caisson.top une première fois (fichier/ouvrir)
lancer l'appli vb

a partir de la on peut fermer le fichier sous topsolid, il pourra etre reouvert par l'appli vb.
Répondre