didier Posté(e) le 9 mars 2004 Posté(e) le 9 mars 2004 Bonjour à Toutes et à Tous.Il semble que beaucoup de personnes soient intéressées par le VBA, dans AutoCad ...Ce soir je donne un exemple de ce qu'on peut réaliser, ce n'est pas vraiment utile ni productif, c'est juste un exercice de style.Le fichier que je propose au téléchargement contient déjà le code des "Subs".C'est ce qui permet de ne pas avoir à lancer une macro, avec les habituelles erreurs de chemin. Il est possible qu'à l'ouverture du fichier, le message sur la sécurité des macros apparaîsse, vous pouvez activer les macros en me faisant confiance, je n'ai rien écrit de vicieux, mais c'est possible, méfiez vous de l'origine des macros. C'est un autre sujet, qui peut être developpé le cas échéant. A l'écran va apparaître un dessin ne contenant qu'un ARC, tapez "ALT + F8", la liste des macros disponibles apparaît, choisissez la première et cliquez sur le bouton "EXECUTER".c'est parti. Mais revenons à mon fichier, il s'agit via des "Userforms" d'obtenir tous les renseignements possibles sur une entité "ARC". Au début, je vous conseille d'utiliser tous les boutons et autres cases de dialogue,tous les renseignements se recalculent "à la volée" lorsque vous changez les options, vous pouvez volontairement entrer des données erronées dans les cases de la feuille "Calculs",j'ai mis un peu d'humour dans les messages d'erreur, ça manque souvent au milieu informatique... ensuite vous pourrez aller lire le code en tapant "Alt+F11" ou ligne de commande : VBAIDE.Vous avez maintenant accès au code proprement dit, à vous de décortiquer.A votre disposition pour discuter des méthodes employées et peut être une explication des formules. Il doit être présent à votre esprit que : JE NE SUIS PAS UN PROFESSEUR, et donc mes méthodes fonctionnent mais ce n'est pas un expert qui a écrit ces lignes, donc je supporte les critiques, si elles sont constructives. Si quelque chose ne fonctionne pas, c'est là que çà m'intéresse, car étant isolé, je n'ai pas moyen de tout débugger, par contre si ça fonctionne un clin d'oeil à l'auteur fait toujours plaisir. Je souhaite que ce fichier serve d'exemple, mais vous pouvez utiliser les formules, je n'en suis pas propriétaire, bien amicalement :D Cliquez sur le lien qui suit pour télécharger le fichierTéléchargez le fichier Éternel débutant... Mon site perso : Programmer dans AutoCAD
Tramber Posté(e) le 9 mars 2004 Posté(e) le 9 mars 2004 Didier, Dommage que ma machine de navigation d'Autocad ne soit pas équipé ce soir pour que je puisse essayer. J'ai fait beaucoup d'arc dans mon petit chemin de vie, mais jamais en VBA ! Je suis impatient :cool: Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Patrick_35 Posté(e) le 10 mars 2004 Posté(e) le 10 mars 2004 Ah, voila une chose intéressante, je le télécharge et je vois ça dès que je peux, mais une question me trotte en tête, retrouve t-on le basic (voir du qbasic) de ma jeunesse des instructions, syntaxes (style gosub, goto, for next, etc...) et autres dans le vba ? Est-ce tout simplement un "clone" de l'ancien basic avant de s'orienter vers la programmation objet avec une dose de pascal ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Patrick_35 Posté(e) le 11 mars 2004 Posté(e) le 11 mars 2004 Je commence à regarder ton prog et ça n’a pas l’air simple , mais est-on obligé de laisser sa macro dans un dessin, ne peut-on pas l’écrire dans un fichier et la charger quand on en à besoin et quelle que soit le dessin ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 11 mars 2004 Auteur Posté(e) le 11 mars 2004 Bonsoir à Toutes et à TousEn réponse à Patrick_35 :Bien sûr que les "subs" peuvent être individuelleset appellées de n'importe quel dessin.C'est même leur principale finalité,comme un Lisp, çà peut devenir des programmesannexes à AutoCad et devenir des nouvelles commandes.Si j'ai fait comme çà dans mon exemple,c'est pour que néophite ne s'emberlificote pas les touches du clavierpour charger les macros avec les "VBALOAD"et tous les problèmes éventuels de chemin de recherche des fichiersinhérents à chaque configuration.Voilà l'explication, sinon çà fonctionne ?amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 12 mars 2004 Posté(e) le 12 mars 2004 Excuse moi Didier si certaines de mes questions peuvent paraître idiotes, mais connaissant très mal le vba, je regarde d'abord ce qu'il est capable de faire et comment, avant d'apprendre une fois encore un nouveau langage (et le célibat n'étant plus, ça devient plus hard de se coller à son pc) Tu n'a pas répondu à ma première interrogation, mais peut-être que tu n'a jamais fais du basic auparavant Je viens de lancer ...ARC_DEFINITION.dwg!Module1.AA_SelEntite et ça plante avec comme message d'erreur Erreur de compilation:Type ActiveX non géré dans Visual Basic C'est dans Label79 en BeforeDragOver Encore une question, décidément j'ai du mal à évoluer avec vba, est-il possible de voir notre code comme avec du lisp, c'est à dire en un seul listing plutôt qu'avec plusieurs fenêtres, et que ce soit aussi valable avec le paramétrage des fenêtres (comme avec du dcl) Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Patrick_35 Posté(e) le 12 mars 2004 Posté(e) le 12 mars 2004 Excuse moi Didier si certaines de mes questions peuvent paraître idiotes, mais connaissant très mal le vba, je regarde d'abord ce qu'il est capable de faire et comment, avant d'apprendre une fois encore un nouveau langage (et le célibat n'étant plus, ça devient plus hard de se coller à son pc) Tu n'a pas répondu à ma première interrogation, mais peut-être que tu n'a jamais fais du basic auparavant Je viens de lancer ...ARC_DEFINITION.dwg!Module1.AA_SelEntite et ça plante avec comme message d'erreur Erreur de compilation:Type ActiveX non géré dans Visual Basic C'est dans Label79 en BeforeDragOver Encore une question, décidément j'ai du mal à évoluer avec vba, est-il possible de voir notre code comme avec du lisp, c'est à dire en un seul listing plutôt qu'avec plusieurs fenêtres, et que ce soit aussi valable avec le paramétrage des fenêtres (comme avec du dcl) Amicalement@+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Patrick_35 Posté(e) le 12 mars 2004 Posté(e) le 12 mars 2004 Excuse moi Didier si certaines de mes questions peuvent paraître idiotes, mais connaissant très mal le vba, je regarde d'abord ce qu'il est capable de faire et comment, avant d'apprendre une fois encore un nouveau langage (et le célibat n'étant plus, ça devient plus hard de se coller à son pc) Tu n'a pas répondu à ma première interrogation, mais peut-être que tu n'a jamais fais du basic auparavant Je viens de lancer ...ARC_DEFINITION.dwg!Module1.AA_SelEntite et ça plante avec comme message d'erreur Erreur de compilation:Type ActiveX non géré dans Visual Basic C'est dans Label79 en BeforeDragOver Encore une question, décidément j'ai du mal à évoluer avec vba, est-il possible de voir notre code comme avec du lisp, c'est à dire en un seul listing plutôt qu'avec plusieurs fenêtres, et que ce soit aussi valable avec le paramétrage des fenêtres (comme avec du dcl) Amicalement@+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 14 mars 2004 Auteur Posté(e) le 14 mars 2004 bonjourc'est bizarre que çà plante làmais désactive la suben mettant un apostrophedevant les cinq lignes de la :Private Sub Label79_BeforeDragOver :casstet: si çà continue de planter, fais moi signea bientôt, pour de bonnes nouvelles Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 16 mars 2004 Posté(e) le 16 mars 2004 Salut Didier, décidément, il y a quelque chose, j'ai bien passé en rem les cinq lignes que tu m'a indiquées, mais rebelote cette fois ci en Private Sub Label90_BeforeDragOver. Je les passe aussi en rem et ça à l'air de fonctionner cette fois-ci. (je suis sur une version 2000 sous NT)Ca m'a l'air vachement bien ton prog avec plusieurs onglets, reste maintenant à approfondir @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Patrick_35 Posté(e) le 16 mars 2004 Posté(e) le 16 mars 2004 Bon, plus je regarde ton prog, plus je me pose des questions1) Peut-tu nous donner la démarche la plus facile à suivre pour créer un prog (faire d’abord la boite de dialogue avec sa mise en forme par exemple, et comment récupérer les valeurs au fur à mesure du développement)2) A quoi sert l'explorateur de projet3) Pourquoi une feuille générale avec des déclarations de variables, de fonctions, etc...4) A quoi correspond les UserFormn, Autocad Object, Modules... et Module de classe5) Dans le Module 1 (Code) , pourquoi une liste défilante (Général) et à quoi elle sert6) Quelle est le principe de déclaration des variables et leurs type7) Aurai-tu un lien indiquant les principales fonctions du vba en français avec leurs syntaxe Ca fait un paquet de questions et je te remercie par avance de ton aide, mais c'est pour mieux comprendre le principe de fonctionnement du vba, après, ce n'est plus que du vocabulaire @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 16 mars 2004 Auteur Posté(e) le 16 mars 2004 bonsoirEn réponse à Patrick_35 :mais mon pauvre ami, si je savais répondre à toutes tes questions,il y a longtemps que j'aurai des résultats en VBA.je commence à balbutier, alors que çà fait plus d'un an que j'appliqueune méthode qui me servit naguère à apprendre à marcher :LES ESSAIS ET LES ERREURS ...je suis maintes fois tombé sur les genoux, et maintenant çà boite un peumais çà marche.tout çà pour dire que je "sens" la façon dont çà tourne mais je ne suispas un théoricien, et ne saurai répondre à tes questions,sans pour autant vouloir faire de la rétention d'info, je ne serai pas ici sinon,mais je suis DEBUTANT, donc il serait MAUVAIS que je fasse un "cours", au risquede balancer de fausses informations qui seraient prises pour argent comptant. Si j'ai mis ce truc à dispo, c'est pour le décortiquer, c'est ce que j'ai fait avecles exemples que j'ai trouvé ici et là...je suis "responsable" des formules employées, c'est de la géométrie,la mise en forme, les déclarations et tout le reste c'est du VBA.les seules "vraies" aides existantes, portent sur le VBA appliqué à "Excel".le bouquin de "Albert M THALHEIM" est aussi un point de départ.amicalement en te souhaitant de la ténacité Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 17 mars 2004 Posté(e) le 17 mars 2004 Salut Didier, au vu de ton prog, tu m'a l'air de quelqu'un qui maîtrise bien le vb. Comme tu te proposais gentiment de faire bénéficier de ton expérience sur ce sujet, ça m’aurait sûrement évité de tâtonner afin de comprendre les bases du vba et évité les erreurs. Je pense que le plus simple est de faire une appli et de poser les questions quand je suis bloqué. Merci de ta bienveillance et à une prochaine Amicalement Ps : Tu es un crack en géométrie ?, si oui, pourrait tu me donner un coup de main pour calculer la nouvelle position en coordonnées en absolue à partie d’un point de base (en absolue) puis de coordonnées relatives avec un angle. Je suis bien passé par cal, mais je ne trouve pas ça top Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 19 mars 2004 Auteur Posté(e) le 19 mars 2004 bonjour Patrick_35pas de problème pour tes coordonnées,qu'as tu comme données de départ ?veux tu un programme, ou bien les formulesde transformation de polaires en rectangulaires ?amicalementami cal le mansami k allemand ;) Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 19 mars 2004 Posté(e) le 19 mars 2004 Merci de ton aideC'est juste des formules dont j'ai besoin, l'école c'est très loinEn un peut plus clair, j'ai un point en coordonnées absolue, je le déplace en relatif par exemple en faisant @10,20 ou encore @5<145, quelles sont les nouvelles cordonnées absolue @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 21 mars 2004 Auteur Posté(e) le 21 mars 2004 bonjouren réponse à Patrick_35 :dans le premier cas que tu cites :@10,20là il n'y a aucune difficulté,cette façon de parler à AutoCad est deltaX,DeltaYdonc les coordonnées absolues du point d'arrivée sont :X du point de départ + 10Y du point de départ + 20 dans le second cas, tu utilises des coordonnées polaires,@5là il faut se souvenir que :deltaX = sinus de l'angle multiplié par la distancedeltaY = cosinus de l'angle multiplié par la distancedonc les coordonnées absolues du point d'arrivée sont :X du point de départ + ( 5 x sinus de 145 )Y du point de départ + ( 5 x cosinus de 145 )sachant que l'angle est donné par rapport à l'axe des Y .si tu as besoin d'explications complémentaires,je suis à ta disposition.amicalement :yltype: Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 22 mars 2004 Posté(e) le 22 mars 2004 Merci Didier de ton aide, et avec le @10,20 , il est vrai que je n’est pas cherché plus loin que le bout de mon nez Amicalement@+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant