Bonjour,
Je vous propose un nouvel élément à utiliser : Stitch, outil pour les amateurs de broderie machine
Stitch est un programme qui permet de visualiser des motifs de broderie machine fournis dans différent types de fichiers (*.vp3, *.hus, *.vip, *.pes). Il est codé en cpp avec une architecture MFC pour fonctionner sous Windows 10 et être compilée avec Visual Studio Community 2019. C’est une mise à jour d’une version déjà publiée, enrichie de la lecture de nouveaux types de fichiers.
Pour mémoire une machine à broder la plus simple est une machine à coudre classique connectée à un ordinateur, à qui on a ajouté un système d’entrainement de Cercles permettant de déplacer avec précision en xy un moreau de tissu sous l’aiguille. La broderie se résumant en une succession de points de couture positionnés pour suivre un motif, réalisés avec différents fils de couleur. Dans ce domaine la créativité peut se donner libre cours car si ces fils sont généralement du coton, certaines broderies utilisent des rubans ou même des fils en autres matières...
Une des fonctions du programme et de permettre d’utiliser le stock de fil que chaque amateur de broderies possède. Et pour réaliser des modèles qui ont toutes les chances de ne pas faire appel à ces fils (fabricants ou qualités différentes), l’idée est de créer un fichier comptabilisant les fils du stock et ensuite appairer automatiquement ces fils au modèle projeté en respectant au mieux les couleurs. Pour cette fonction le programme permet de créer une Palette de fils regroupant tous les fils disponibles puis possède une commande permettant de remplacer les fils du modèle par ceux de la palette. Le format de fichier choisi pour cette fonction est *.vp3 qui a les caractéristiques requises (permettre un grand nombre de fils et de couleurs et ne pas imposer la présence d'un motif de broderie).
L’architecture du programme est un très classique document-vue avec la classe CStitchApp, dérivée de CWinApp pour l’application, contenue dans les fichiers Stitch.h et Stitch.cpp, la classe CMainFrame dérivée de CFrameWnd et CDocStitch dérivée de CDocument. C’est facile de retrouver ces éléments dans les différents fichiers source, car d’une manière générale, les noms ont un rapport avec les classes contenues.
L’affichage utilise trois fenêtres gérées par un splitter ‘maison’ (procédure CViewLeft::splitt()) . il gère trois fenêtres d’affichage : CListCtrl m_wndThreadView et CRichEditCtrl m_wndDescrView; placées dans la classe CViewLeft d’une part et la classe CViewStitch. Les quatre types de fichiers reconnus, conduisant au même affichage sont gérés ensemble au niveau de la classe CDocStitch.
Comme ce programme gère de nombreuses listes (liste des points, liste des fils de couleur, palette de fils), la classe CPatternList est crée pour factoriser toutes les fonctions nécessaires de tri, de sélection et d’affichage de ces listes.
La classe CEmbroider aidée de la classe CPattern gèrent les différentes fonctions assurées par le programme concernant le décodage et l'affichage des motifs de broderie.
Des classes spécialisées gèrent la lecture et l’écriture des fichiers de broderies : CRd_HUS, CRd_PES, CRd_VIP, CRd_VP3 et CWr_VP3. La classe CDecode gère les tables de points de ces fichiers et la classe CBuffer gère la lecture et la mémorisation. On remarquera que le programme lit les quatre type de fichiers mais n’est capable que d’écrire le type *.vp3, il assure donc la conversion vers ce type lorsqu’il s'agit de réécrire un autre type. Une particularité des types *.HUS et *.VIP est de nécessiter le même programme de décompactage pour lire les tables de points. Deux classes assurent ces fonctions CCompress et CExpand pour la compression et la décompression. La fonction de compression n’est pas utilisée actuellement (on n'écrit pas ces fichiers) mais sert à tester la fonction de décompression.
Les Classes CHelpDlg et CTreeView assurent l’affichage d’un mode d’emploi avec l’aide des fichiers *.htm contenus dans le dossier Help ; le fichier HMenu.h contient le noyau initial du menu de l'aide. Cette partie peut facilement être transportée dans une autre application elle mets en œuvre ces 3 fichiers HelpDlg.h, HelpDlg.cpp et HMenu.h ; ce dernier assurant la liaison avec l’application. Pour l'exemple, la mise en ouvre de cette fonction est complètement contenue dans la Classe d’application CStitchApp.
D'autres fonctions, dérivées de la classe CDialog sont assurées par exemple pour l'affichage ou le paramètrage :
La classe CThreadDlg affiche la liste des points d’une couleur de fil.
La classe CPaletteDlg affiche la liste des fils contenus dans la palette de fils.
La classe CNewPalDlg permet de créer une nouvelle palette de fils.
La classe CPaletteUpdDlg permet de modifier et enrichir une palette de fils.
La classe CMakeEmPalDlg transforme une palette de fils en broderie.
Qu'en pensez-vous ?
Partager