AUTOCAD (DÉBUT D'IMITATION)

cs_webdev Messages postés 10 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 8 août 2007 - 9 mai 2005 à 13:03
Plateforme3 Messages postés 3 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 1 janvier 2015 - 4 juil. 2006 à 16:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31268-autocad-debut-d-imitation

Plateforme3 Messages postés 3 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 1 janvier 2015
4 juil. 2006 à 16:40
Bonjour
La tache est ardue mais pas impossible
J'ai, en mon temps, développé un logiciel de dessin 2D/3D filaire sous VB3 (comme quoi)avec les fonctions de tracés (lignes, cercles, carrés, ...) et de modifications (chanfreins, rayons, ajuster, ...) plus calcul de surface, déplacer, copier, miroir, ...
En ce qui concerne la rapidité, je gérais des fichiers de dessins de plusieurs milliers d'entités avec une rapidité d'affichage (sous un 486) des plus honorables
La base est en effet de travailler sur des objets, type variables typées
Il te faut en priorité:
Type d'objet (ligne, carré, ...)
Les points de départ et d'arrivée mais aussi les points d'insertions pour les cercles, rayons, ...
Le calque, la couleur, le type de ligne
Si l'objet est sélectionné ou non
Pour la détection automatique des extrémités, je pense qu'une routine en C serait plus appropriée
Néanmoins, voici ce que tu peux faire
- Gérer un indicateur dans ta variable qui te permetra de savois si ton objet est à l'écran, ou mieux créer un tableau temporaire des objets affichés (perte de temps à chaque affichage mais gain en traitement ensuite)
- Dans ta variable il faut gérer la surface prise par ton objet à l'écran représentée (virtuellement) par un rectangle (X1,Y1, X2, Y2)
- Lors des mouvements de ta souris, tu n'as qu'à tester:
- Si pointeur dans rectangle d'un objet
- Dans ce cas si pointeur proche d'une extrémité
- Faire afficher un objet rectangle à l'extrémité de ce trait

Pour plus d'infos, on verra plus tard, n'hésites pas
Cordialement
Pierre Gelin Messages postés 13 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 11 juin 2007
16 mai 2005 à 12:21
Bien sur les lignes doivent être des objets ! C'est la base des logiciels dits "vectoriels" comme Autocad par oposition aux logiciels "bitmap" comme beaucoup de petits logiciels de dessins comme le Paint de windows. Cela permet de revenir sur les "traits" pour les modifier (édition). D'autres gros intérêts :
- Le stockage très compact des données (au niveau ou tu es, pour une ligne, on a juste à enregitrer le point de départ et le point d'arrivée (2x2 réels) au lieu de l'état d'un grand nombre de pixels.
- des zooms et des tracés grande échelle sans perte de qualité puisqu'on ne manipule plus des pixels mais des coordonées

On peut je pense s'amuser pas mal avec VB sur le sujet mais au fur et à mesure de l'évolution de ton projet, tu seras vite confronté à un problème épineux : les performances. Autocad dispose d'un moteur graphique (Heidi) très performant développé en C avec je crois même quelques portions en assembleur.

Bon courage !
Pierre Gelin Messages postés 13 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 11 juin 2007
16 mai 2005 à 12:21
Bien sur les lignes doivent être des objets ! C'est la base des logiciels dits "vectoriels" comme Autocad par oposition aux logiciels "bitmap" comme beaucoup de petits logiciels de dessins comme le Paint de windows. Cela permet de revenir sur les "traits" pour les modifier (édition). D'autres gros intérêts :
- Le stockage très compact des données (au niveau ou tu es, pour une ligne, on a juste à enregitrer le point de départ et le point d'arrivée (2x2 réels) au lieu de l'état d'un grand nombre de pixels.
- des zooms et des tracés grande échelle sans perte de qualité puisqu'on ne manipule plus des pixels mais des coordonées

On peut je pense s'amuser pas mal avec VB sur le sujet mais au fur et à mesure de l'évolution de ton projet, tu seras vite confronté à un problème épineux : les performances. Autocad dispose d'un moteur graphique (Heidi) très performant développé en C avec je crois même quelques portions en assembleur.

Bon courage !
cs_Stephane Messages postés 550 Date d'inscription vendredi 5 janvier 2001 Statut Membre Dernière intervention 23 septembre 2006
10 mai 2005 à 21:28
slu

oui pour l'edition, c'est obligatoire !
essaye de gerer tout ca avec des types ou des classes (dépend des besoins (je connais pas trop))

++
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
10 mai 2005 à 18:25
Autocad en fait je viens de découvrir un truc car la j'ai vraiment eut du mal. Mon code il faut pas qu'il dessine mais il faut qu'il crée un ligne en temps qu'objet.

JRB
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
10 mai 2005 à 18:21
Je sais mais sans but il n'y a pas de vie.

Mais c'est possible il suffit de reflechir ou de voler les codes sources de Autocad.

JRB
purplespot Messages postés 60 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 17 avril 2006
10 mai 2005 à 18:13
Je ne voudrais surtout te décourager, mais ton projet n'est qu'un vaste rêve
pour arriver à une pâle clone d'Autocad.
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
9 mai 2005 à 19:21
Très bon code effectivement. Mais je n'ai pas tout regardé.
cuq Messages postés 345 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 21 mars 2008 2
9 mai 2005 à 18:04
Regarde la source :

http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=35722&lngWId=1

Uniquement sur la partie dessin 2D tu as une accroche sur les points de la grille , l'extrémité des segments les millieux etc ...
cs_webdev Messages postés 10 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 8 août 2007
9 mai 2005 à 13:03
pas mal du tout comme début...
...pour l'accrochage, j'ai déjà essayé dans le genre mais pas évident du tout, la difficulté que j'ai rencontré c'est la gestion de l'espace "plan", si on fige l'échelle, on arrive vite à cerner les points, en jouant sur le positionnement curseur par exemple, c'est rapide à faire mais peu finalisé comme solution...

SxF'Webdev
Rejoignez-nous