Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Patrick_35

    AUTOCAD LT2000

    On peut compter des blocs grace à la commande _filter aussi bien sur une LT que sur une version complète @+
  2. Patrick_35

    Exemple de VBA ...

    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 @+
  3. Patrick_35

    Exemple de VBA ...

    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 @+
  4. Patrick_35

    Exemple de VBA ...

    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)
  5. Oui, Tramber, c'est bien ça, mais je pense que notre ami Rimbo n'a pas tout saisi en ce qui concerne les boucles Je pourrai traduire une boucle while --> tant que La boucle qui est faite dans le présent exemple est tant que (ssname ent n) n'est pas nil alors ... ... (setq longueurent (+ longueurent (distance pd pa))) j'additionne les longueurs dans la boucle ... ... (setq n (1+ n)) j'incrément de 1 pour passer à la sélection suivante ... ... ) je ferme le while (alert (strcat "La longeur Total des entitées est de " (rtos longueurent))) j'affiche le résultat
  6. Patrick_35

    Exemple de VBA ...

    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 ? @+
  7. Patrick_35

    G besoin d\'aide SVP

    Didier avait répondu dans son lisp, si il n'y a pas de code 6 sur l'entité, c'est qu'elle est ducalque (assoc 6 en)=nil @+
  8. Je m'insinues dans la discutions Pour traiter un jeu de sélection, il faut passer par une boucle Il faut aussi trier les infos que l'on peut recevoir d'un jeu de sélection (on ne sélectionne pas forcement que des lignes) et vérifier aussi qu'elle n'est pas vide (defun c:lligne(/ ent entselec n pa pd) (setq ent (ssget)) (if ent (progn (setq n 0) (while (ssname ent n) (setq entselec (entget (ssname ent n))) (if (= (cdr (assoc 0 entselec)) "LINE") (progn (setq pd (cdr (assoc 10 entselec))) (setq pa (cdr (assoc 11 entselec))) (setq longueurent (distance pd pa)) (alert (strcat "La longeur de l'entité " (itoa n) " est de " (rtos longueurent))) ) ) (setq n (1+ n)) ) ) ) (princ) ) Pour Tramber, le entsel fait la sélection que d'une seul entité @+
  9. Il n'y a pas de lézard :cool: @+
  10. Je ne te suis pas tout à fait, le setq défini une variable Le but de laisser les variables en local, c'est que ça évite de perturber éventuellement d'autre fonctions qui pourraient faire appel à cette variable. Ca permet d'être plus "propre", de mieux structurer les fonctions que je souhaite créer. Je définis tout ce qui appartient à cette fonction et uniquement pour celle-là Par exemple (defun c:test(/ x y z) (setq x 1.0 y 1.0 z 0.0) ) mes variables sont en local et en faisant sur ma ligne de commande !x, j'ai nil comme réponse (defun c:test() (setq x 1.0 y 1.0 z 0.0) ) mes variables ne sont plus en local dans ma fonction, et en refaisant !x sur ma ligne de commande, j'ai 1.0 comme réponse (defun c:test(/ x y z) (setq x 2.0 y 2.0 z 1.0) ) Mes variables sont en local, et en refaisant !x, j'ai cette fois-ci 1.0 comme réponse Maintenant j'ai une fonction qui fait elle aussi appelle a la variable x, mais pas forcement sur la valeur 1.0 et qui à besoin, histoire de corser le tout d'une valeur aphanumérique, alors ça commence à être le souk et pour débuguer, bon courage
  11. De mémoire, il y a le programme julian.lsp (fournit par Autodesk) qui joue avec les dates. Il existe depuis au moins la version 12, et je viens de le retrouver dans le répertoire express d'autocad @+
  12. Patrick_35

    Exemple de VBA ...

    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 ? @+
  13. J'ai beau relire et relire les explications, soit je suis fatigué ou idiot mais je ne comprends toujours pas :casstet: @+
  14. On peut les définir une à une, tout dépend ce que l'on veut faire. Le (defun convdr(a) correspond à l'appel d'une fonction avec un argument, dans le cas présent, j'appelle la fonction de conversion sur un angle donnée (variable a) Le principe de définir ses variables à l'intérieur de la fonction permet de les laisser en "local". Dans ton exemple, si je fais !p1 sur ma ligne de commande, autocad me retourne la valeur du point, alors que si je les laissent en "local", quand je fais !p1 sur ma ligne de commande, il m'est retourné nil. C'est surtout pratique quand on manipule des listes, on n'est pas obligé de les définir au départ en tant que nil On peut faire une fonction avec un argument et des variables en "local" aussi (defun convdr(a / var1 var2) On peut faire encore plus subtile en souhaitant qu'une fonction me retourne une valeur en fonction de l'argument, mais on verra ça plus tard @+
  15. Yes, les choses avancent vite, juste une astuce, dans le lisp, la fonction convdr est accessible, il est possible de faire par exemple (defun c:carre() (defun convdr(a) .... ) .... .... ) ce qui permet de ne faire qu'un seule "bloc" de la nouvelle fonction crée Maintenant, pour éviter que des variables trainent dans le dessin (defun c:carre(/ long p1 p2 p3 p4) Et pour terminer, afin d'éviter un nil d'apparaitre sur la ligne de commande une fois la routine exécuté, je mets un silence soit un princ à la fin du lisp (defun c:carre() ... ... ... (princ) )
  16. C'est bien, mais si on n'a pas de hp ? @+
  17. Bonjour à vous tous Juste un petite précision, il existe la fonction getangle qui permet une saisie avec le pointeur ou une saisie clavier, la valeur retourné est en radian Je pense que didier veut que l'on récupère les valeurs de la première ligne (angle+longueur) et l'on additionne ensuite les valeurs de la seconde saisie pour dessiner la deuxième ligne (schématiquement angle=angle1+angle2 et longueur=longueur1+longueur2) @+
  18. Patrick_35

    Autocad et Excel

    Merci Didier de ton aide, mais autant j'arrive à me débrouiller en lisp :) , autant je suis une bille en vba :( , ça me paraissait plus simple pour moi @+
  19. heu, non, la variable est l_point, c'est une liste @+
  20. Patrick_35

    autocad et claviers

    Soit le AutoCAD.lsp ou le AutoCAD.lsp, c'est un choix, mais quand on à personnalisé ses postes de travails avec pleins de lisp en autoload, du coup, on interdit la modification du AutoCAD.lsp et comme le pgp est justement dédié au raccourcis, autant y faire appelle @+
  21. Puisqu’il faut lancer le sous forum sur le visual lisp, j’ai un sujet que je n’ai malheureusement pas eu le temps d’approfondir :( Le but serai d’appeler Excel depuis autocad avec l’ouverture d’un fichier xls, de choisir sa page , puis de lire ou écrire une valeur dans un cellule donnée avec la possibilitée de faire une sauvegarde ou une impression de la feuille Excel, toujours depuis Autocad @+
  22. Patrick_35

    autocad et claviers

    Pour tout connaître sur les raccourcis et à qui ils correspondent sur sur son poste de travail, il suffit d'éditer le fichier pgp (acad.pgp ou aclt.pgp) dans le répertoire support d'autocad En suivant la logique, on peut faire les siens @+
  23. Patrick_35

    autocad et claviers

    Vive le clavier, ça permet de se passer des menus, des boutons qui ne sont pas toujours les mêmes en fonction du poste de travail ou de la future évolution d'autocad Pour ma part, c'est les raccourcis+clic droit de la souris comme entrée J'ai aussi crée un lisp sur le zoom comme za (zoom précédent) à cause des différentes versions d'autocad qui est incapable se suivre une logique dans ses différentes commandes, un grand merci aux traducteurs (j'en veux pour preuve le zoom avant qui est devenue zoom précédent, et le p est loin du z par rapport au a sur le clavier, surtout quand on frappe avec deux doigts) @+
  24. Il faut aller voir dans le guide de personnalisation au chapitre 4 dans les menus personnalisés pour attribuer un raccourci clavier à une commande autocad.L'affection de ctrl+1 à sûrement été modifiée dans le menu @+
  25. Patrick_35

    premier cours

    Je viens de penser à ce site qui pourrait vous intéresser sur les commandes autolisp http://aidacad.com/fr/autolisp.htm @+
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité