phil_vsd Posté(e) le 3 septembre 2006 Partager Posté(e) le 3 septembre 2006 Bonjour tous, Je voudrai savoir, car j'ai cherché et je n'ai pas trouvé, si l'on peut insérer et piloter, soit par VBA soit par du Lisp, les champs dynamiques dans un objet "texte" ou "mtexte".Exemple d'application : je clique sur une surface, puis apparait un texte avec un champs lié à la polyligne qui renseignerait sur son aire. Merci à vous ! "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 3 septembre 2006 Partager Posté(e) le 3 septembre 2006 Salut, Essaye REA dans les LISP de Patrick_35 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 3 septembre 2006 Auteur Partager Posté(e) le 3 septembre 2006 Merci Gile et Patrick 35 Pas mal ce lisp ça me motive pour apprendre le lisp, va falloir que je me mette un coup de pied au cul, mais un gros alors parce que cette syntaxe... on est pas copain elle et moi ! "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 3 septembre 2006 Partager Posté(e) le 3 septembre 2006 Re, cette syntaxe... on est pas copain elle et moi !pareil pour moi, avec VB/VBA Une autre façon, en utilisant les champs plutôt que les réacteurs avec lesquels je ne suis pas familier du tout. Le LISP place le texte sur le centre de gravité de la polyligne. On peut changer le suffixe, " mm²", suivant l'unité courante. ;;; Pline_area Place un texte avec champ "Aire" sur le centre de ;;; gravité de la polyligne fermées sélectionnée. (defun c:pline_area (/ ss obj txt Space reg pt) (while (not (setq ss (ssget "_:S:E" '((0 . "LWPOLYLINE") (-4 . "&") (70 . 1))) ) ) ) (setq obj (vlax-ename->vla-object (ssname ss 0)) txt (strcat "Aire = " "% (itoa (vla-get-ObjectID obj)) ">%).Area \\f \"%lu6%qf1\">%" " mm²" [color=#3366FF]; Suffixe à changer suivant l'unité utilisée[/color] ) Space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace (vla-get-activedocument (vlax-get-acad-object)) ) (vla-get-ModelSpace (vla-get-activedocument (vlax-get-acad-object)) ) ) reg (vlax-invoke Space 'addRegion (list obj)) pt (trans (vlax-get (car reg) 'Centroid) 1 0) mtext (vla-addMtext Space (vlax-3d-point pt) (getvar "TEXTSIZE") txt ) ) (vla-put-width mtext 0.0) (vla-put-AttachmentPoint mtext acAttachmentPointMiddleCenter ) (vla-put-InsertionPoint mtext (vlax-3d-point pt)) (vla-delete (car reg)) (princ) ) [Edité le 3/9/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 3 septembre 2006 Auteur Partager Posté(e) le 3 septembre 2006 Gile tu es un chef ! Y'a pas de doute tu maîtrise le lisp. Ta routine est exacetement ce que je recherche à faire, je vais la décortiquer pour l'adapter. Ensuite les champs seront copiés dans un tableau pour une addition de surfaces d'appartement. Maintenant que je sais que les champs sont pilotables en lisp c'est super motivant, surtout quand on se base sur une routine déjà existante. J'ai acheté le livre "Programmer Autocad" c'est pas mal mais il y a des fautes de frappes dans les routines et parfois ça ne marche pas... Comme je ne les détecte pas au premier coup d'oeil, je traîne un peu, je me pose des questions. En attendant je vais continuer à pomper des routines dans les forums et à implorer votre pitié de temps en temps... :P A très bientôt ! "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Patrick_35 Posté(e) le 3 septembre 2006 Partager Posté(e) le 3 septembre 2006 En attendant je vais continuer à pomper des routines dans les forums Salut, elles sont principalement en lisp voir vlisp, alors si tu souhaites t'y mettre, bienvenue au club ;) ps: le vlisp et le vba se ressemblent beaucoup et on arrive en vlisp à jouer avec les ActiveX @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
phil_vsd Posté(e) le 4 septembre 2006 Auteur Partager Posté(e) le 4 septembre 2006 Salut tous ! Le lisp ? Je vais m'y mettre... Piano piano... Mais promis je vais m'y mettre. Je pense que c'est le second palier dans la carrière d'un dessinateur. En ce moment je décortique les lisps mais je devrai commencer par des lisps plus simples, pour m'imprégner de la syntaxe. A ++ "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges. Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 4 septembre 2006 Partager Posté(e) le 4 septembre 2006 Un petit conseil pour la syntaxe, sert toi de l'éditeur VisualLISP, formatage, couleurs différentes pour les fonctions, le chaines, les réels et les entiers, double clic pour l'appariement des paranthèses, double clic pour sélectionner une fonction et accés direct à l'aide (icône au point d'interrogation) ... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
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