Programmer en C++ pour Topsolid V6.12

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
Pellan
Seconde Classe
Seconde Classe
Messages : 5
Enregistré le : 10 juil. 2013, 14:41
Version TopSolid : 6.12
Module TopSolid : TopSolid'SheetMetal

Programmer en C++ pour Topsolid V6.12

Message non lu par Pellan »

Bonjour,

Je voudrais programmer des applications pour Topsolid (v6.12) en utilisant Visual Studio C++.

J'ai vu dans le dossier .\Missler\V612\bin\ des fichers .h et .c , mais je n'ai aucune idée sur la façon de les utiliser.
Quelqu'un aurait-il la démarche, le type de projet C++ à créer, les lignes de code C++ pour commencer.

L'objectif est de créer un fichier .dll à copier dans .\Missler\V612\bin\ et de pouvoir l'utiliser comme un mot clé LIP
(Language for Interactive Progamming) dans un macro ou directement depuis les menus Topsolid.

J'aimerais par la suite pouvoir utiliser les événements de Topsolid: Ouverture/Enregistrement/Fermeture de fichiers
pour exécuter des fonctions C++ spécifiques (ex: faire un PDF ou une image JPG après fermeture du fichier si celui-ci
a été enregistré).


Je fais des macros LIP, du VBA Excel et des petites Applications en .NET. Je voudrais programmer en C++,
si vous pouviez m'aider à bien commencer.
Merci


Voici un petit macro LIP que j'ai écris:

Copier les lignes du macro dans le Bloc-Notes (de STRING jusqu'à QuitMacro)
Enregister le dans C:\Missler\V612\Mylip\OuvrirDft.txt


---------------------------------------debut macro-

(
FUNCTION A partir d'un document courant .top, Ouvrir un ficher du même nom et dans le même dossier en .dft
ex:
document courant c:\projets\part01.top
ouvre le document c:\projets\part01.dft (si il existe)

ou
document courant c:\projets\part02.dft
ouvre le document c:\projets\part02.top (si il existe)

WHEN WHO WHAT
09/09/11 ?? creation

STK IN :
STK OUT :
)

STRING directory
STRING name
STRING suffix
LABEL drawing

DDOCWhascrtid GetDocumentDirectory "\" +S directory!

GetCurrentDocumentName SplitFileName suffix! name!

"$DFT_DRAWING" DWnamtolab drawing!

"" drawing? =L0 If

directory? name? +S ".dft" +S

IsFile Not If

Else
directory? name? +S ".dft" +S
"dft" (type)
0 (readonly)
0 (cutlink)
0 (disableautoupd)
"$TOPHOME/u/l/loadfile" Execute
Then

Else

directory? name? +S ".top" +S
IsFile Not If

Else
directory? name? +S ".top" +S
"top" (type)
0 (readonly)
0 (cutlink)
0 (disableautoupd)
"$TOPHOME/u/l/loadfile" Execute
Then
Then

QuitMacro

-fin macro---------------------------------------


Après encodage du fichier OuvrirDft.txt en OuvrirDft.lob
(un simple glisser/déposer du OuvrirDft.txt dans l'explorateur Windows sur le ficher C:\Missler\V612\bin\toplip.exe)


Voici le ficher encodé par toplip.exe:
(vous pouvez copier (de 20 jusqu'à W19) le code directement dans le bloc-notes et l'enregistrer dans C:\Missler\V612\Mylip\OuvrirDft.lob si vous n'avez pas toplip.exe)


-macro encodé---------------------------------------

20
0
DDOCWhascrtid
DDOCWgetdir
LWstr
LWstrcncat
LVARWstringpop
DWgetfname
LWsplitname
LVARWpush
UWmessage
DWnamtolab
LVARWlabelpop
LWlabvoid
LWjmp0
LWfilexists
LWnot
LWjmp
LWnum
LWexec
LWquitproc
LWend
340
0
0
W0
W1
W2
S\
W3
W4
Sdirectory
I0
W5
W6
W4
Ssuffix
I0
W4
Sname
I0
W7
Ssuffix
I0
W8
W2
S$DFT_DRAWING
W9
W10
Sdrawing
I0
W2
S
W7
Sdrawing
I0
W11
W12
A77
W7
Sdirectory
I0
W7
Sname
I0
W3
W2
S.dft
W3
W13
W14
W12
A3
W15
A4e
W7
Sdirectory
I0
W7
Sname
I0
W3
W2
S.dft
W3
W2
Sdft
W16
I0
W16
I0
W16
I0
W2
S$TOPHOME/u/l/loadfile
W17
W15
A75
W7
Sdirectory
I0
W7
Sname
I0
W3
W2
S.top
W3
W13
W14
W12
A3
W15
A4e
W7
Sdirectory
I0
W7
Sname
I0
W3
W2
S.top
W3
W2
Stop
W16
I0
W16
I0
W16
I0
W2
S$TOPHOME/u/l/loadfile
W17
W18
W19

---------------------------------------macro encodé-

Ajouter la ligne suivante dans les fichiers icons de topsolid
(Pour connaitre le dossier aller dans Topsolid , Aide , Configuration)

dans design.icn

ligne existante "#Men#File#Open" #0,11,1 = CATEGORY "#Icn#Category#File" $TOPHOME/u/l/load 10 ;
ajouter "Ouvrir dft" #0,11,1 = CATEGORY "#Icn#Category#File" C:\Missler\V612\Mylip\opendft.lob 10 ;


dans draft.icn
ajouter "Ouvrir top" #0,11,1 = CATEGORY "#Icn#Category#File" C:\Missler\V612\Mylip\opendft.lob 10 ;

Redémarrer Topsolid pour utiliser le macro.
Répondre