didier Posté(e) le 18 février 2018 Auteur Posté(e) le 18 février 2018 Coucou Je travaille sur les fonctions VL en parallèle du DCL, y'a vraiment beaucoup de travail à faire (bien plus que je pensais) Nouveauté :J'ai mis une page de contact avec un formulaire, en vous en servant on pourra communiquer par mailJe ne suis pas partisan de faire un forum mais si l'idée fait son chemin pourquoi ne pas creuser.J'attends vos mails pour critiques, idées, questions, encouragements, insultes... Le 18 février 2018 : 192 pages Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 19 février 2018 Auteur Posté(e) le 19 février 2018 Coucou J'ai retiré le message de non-fonctionnement car ça fonctionne, j'ai testé ce matin depuis une autre machine et ça passe...Je parle de la possibilité de m'écrire depuis www.da-code.fr Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
nG! Hebus Posté(e) le 19 février 2018 Posté(e) le 19 février 2018 Salut Didier Encore merci pour ton site (vrai complément avec l'intro de Master Gile ). Je me permet toutefois de vous contacter car (en ce moment je m'y met au LISP) cela reste très flou... Les exercices m'aident vraiment car je vois la logique une fois que les variables et arguments sont mis en place. Je me permet donc de t'orienter vers ce site (trouver au grés de mes recherches) qui présente différement avec des exemples : http://www.afralisp.net/autolisp/tutorials/the-basics-part-2.php (ici une page qui m'a aider sur le "\n" ) C'est vrai que vos cours sont super car vous n'oubliez rien (niveau fonction, variable) mais cela dit il est compliqué de se mettre devant une page blanche et d'écrire un LISP sans avoir vu des exemples. Du coup en ce moment je prend des LISP que j'utilise tout les jours et je les "décompose" (finalement je fait du pas à pas avec les LISP complexes), ça me permet de voir comment appeler les fonctions, valider/tchéquer les variables, etc... Je sais par expérience qu'il est dur de faire passer son savoir, pour un coup je suis dans l'autre position, du coup je propose des choses. je cherche avant tout à être constructif c'est à la fois pour moi mais également pour les autres futurs élèves. En tout cas MERCI pour tout ce partage de savoir ! "98% des soucis informatiques sont assis entre la chaise et le bureau !" "C'est parce que la vitesse de la lumière est supérieure à celle du son que tant de gens paraissent brillants avant d'avoir l'air con."
didier Posté(e) le 1 mai 2018 Auteur Posté(e) le 1 mai 2018 Coucou Du temps est passé ... il n'a pas de mérite, il n'a que ça à faire "le temps"Je continue à faire vivre le site et je ne sais pas si la fréquentation est à la hauteur de mon travail mais je suis obstiné et je persiste Aujourd'hui je suis en train de créer des pages sur les fonctions VL.Du même coup je découvre des trucs que je n'utilise pas dans "la vie de tous les jours". J'ai quelque peu modifié la navigation en mettant des "ancres" dans les pages pour éviter de revenir sans cesse aux menus, qu'en pensez-vous ?À bientôt, je suis toujours à l'écoute des commentaires. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
(gile) Posté(e) le 1 mai 2018 Posté(e) le 1 mai 2018 Salut, Même si elles sont arrivées en même temps que Visual LISP (l'éditeur VLIDE et les fonctions vla-, vlax- et vlr-) avec les versions R14 et 2000, je considère les fonctions vl- comme une extension des fonctions AutoLISP.Elle n'ont rien à voir avec l'interface COM/ActiveX (utilisée par le VBA AutoCAD qui arrive dans AutoCAD à la même époque) ou avec les réacteurs (fonctions vlr-). D'ailleurs les fonctions vl- sont supportées par AutoCAD MAC contrairement aux fonctions (vla-, vlax- et vlr-). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 1 mai 2018 Posté(e) le 1 mai 2018 Quelques commentaires vite faits : vl-consp : vérifie si l'argument est une liste non vide (parce que (listp nil) renvoie T) vl-member-if : renvoie la liste à partir de du premier élément vérifiant le prédicat. À propos des fonction vl-, tu peux voir ce sujet qui définit des équivalences en "pur AutoLISP". Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
didier Posté(e) le 1 mai 2018 Auteur Posté(e) le 1 mai 2018 Coucou OK, merci (gile) j'ai corrigé (complété) vl-consp en rajoutant ton exemple pour vl-member-if ce que tu expliques était déjà écrit dans la pageJe me penche de plus près sur ton message précédent dès que je peux. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
(gile) Posté(e) le 2 mai 2018 Posté(e) le 2 mai 2018 Je me suis mal exprimé, ce que je voulais dire c'est que les descriptions de certaines fonctions sont inexacts : vl-member-if Recherche dans une chaîne (string) vl-member-if-not Recherche dans une chaîne (string) bis Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
didier Posté(e) le 2 mai 2018 Auteur Posté(e) le 2 mai 2018 Coucou Ben moi aussi je me suis mal exprimé, sur da-code, j'en conviensMais en trois/quatre mots quoi mettre dans le mémento et le titre ? J'ai changé par cette tournure : Test dans une chaîne (string) (par prédicat) Qu'en penses-tu ?As-tu une idée ? Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Olivier Eckmann Posté(e) le 2 mai 2018 Posté(e) le 2 mai 2018 Didier, on parle de test dans une liste et pas dans une chaine (string) pour vl-member... Olivier
didier Posté(e) le 2 mai 2018 Auteur Posté(e) le 2 mai 2018 Coucou Au temps pour moi, c'est corrigéVous êtes intraitables, grrrr,.....j' adore Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 2 mai 2018 Posté(e) le 2 mai 2018 Salut Didier Bon courage avec les fonctions vl. L'avantage du vlax-get-or-create-object par rapport au vlax-create-object, c'est que si l'application est déjà lancée, tu te connectes à elle, sinon, tu la lances.Si tu fais deux (vlax-create-object "Excel.Application"), regardes dans le gestionnaire des tâches et tu trouveras deux Excel. Autre chose. Les fonctions vla... et vlax... sont très proches.Je vais prendre un exemple très simple. Une ligne par exemple.(setq obj (vlax-ename->vla-object (car (entsel)))) --> #<VLA-OBJECT IAcadLine 000001d44ba35878Un (vlax-dump-object obj T) retourne; IAcadLine: Interface AutoCAD Line; Valeurs de propriétés:; Angle (RO) = 5.84269; Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff7671551a8>; Delta (RO) = (702.755 -331.266 0.0); Document (RO) = #<VLA-OBJECT IAcadDocument 000001d44bbeb708>; EndPoint = (3676.75 963.589 0.0); EntityTransparency = "DuCalque"; Handle (RO) = "266"; HasExtensionDictionary (RO) = 0; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 000001d453cd7698>; Layer = "0"; Length (RO) = 776.918; Linetype = "ByLayer"; LinetypeScale = 1.0; Lineweight = -1; Material = "ByLayer"; Normal = (0.0 0.0 1.0); ObjectID (RO) = 42; ObjectName (RO) = "AcDbLine"; OwnerID (RO) = 43; PlotStyleName = "ByLayer"; StartPoint = (2974.0 1294.85 0.0); Thickness = 0.0; TrueColor = #<VLA-OBJECT IAcadAcCmColor 000001d453cd6e50>; Visible = -1; Méthodes prises en charge:; ArrayPolar (3); ArrayRectangular (6); Copy (); Delete (); GetBoundingBox (2); GetExtensionDictionary (); GetXData (3); Highlight (1); IntersectWith (2); Mirror (2); Mirror3D (3); Move (2); Offset (1); Rotate (2); Rotate3D (3); ScaleEntity (2); SetXData (2); TransformBy (1); Update () Pour les propriétés :Un vla-get... récupère des valeursUn vla-put... change des valeurs Par exemple, pour connaitre le calque de l'objet(vla-get-layer obj) --> "0"Pour changer le calque de l'objet, à condition que celui-ci existe(vla-put-layer obj "Nouveau")Il est aussi possible d'utiliser les vlax-get et vlax-put(vlax-get obj 'layer) --> "0" (vlax-put obj 'layer "Nouveau") A ce stade, quel différence entre vla-get et vlax-get, ou vla-put et vlax-put ?Prenons par exemple la propriété StartPoint(vla-get-StartPoint obj) --> #<variant 8197 ...> (vlax-get obj 'StartPoint) --> (2974.0 1294.85 0.0) Et c'est le même principe avec les méthodesPar exemple pour copier la ligne(setq new (vla-copy obj)) et (setq new (vlax-invoke obj 'copy))Et pour déplacer la copie(vla-move new (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-point '(100.0 100.0 0.0))) (vlax-invoke new 'move '(0.0 0.0 0.0) '(100.0 100.0 0.0))A chacun son style.Tu noteras au passage qu'on mémorise dans une variable la copie. Une chose encore.On a (vlax-get-property...) versus (vlax-get...) et (vlax-invoke...) versus (vlax-invoke-method...)C'est dû aux nombre d'arguments qui passent bien dans un premier cas, et pas toujours dans l'autre. C'est surtout quand tu travailles avec des applications tierces. ps : la logique et les fonctions vla avec le vba sont très, très proches. @+ 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 2 mai 2018 Auteur Posté(e) le 2 mai 2018 Coucou Merci Patrick_35C'est prévu d'écrire tout ça mais je fais ça petit à petit, j'ai rien de prêt pour le VLAutant pour l'AutoLISP j'ai mis en page des centaines de pages tapées auparavantPour le VL je n'avais pas de matière première toute prête et j'écris "à la volée" ce qui explique certaines bourdes et hésitations (que vous me corrigez). Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
(gile) Posté(e) le 2 mai 2018 Posté(e) le 2 mai 2018 Encore un grain de sel : Les fonctions vla- (Visual Lisp Automation) ne concernent que l'API COM d'AutoCAD autrement dit toutes les propriétés, méthodes et évènements de l'Object Model d'AutoCAD, ce qui représente un nombre considérable de fonctions. Personnellement, je ne me lancerais pas dans une description exhaustive de ces fonctions, je me contenterais d'expliquer comment utiliser l'aide ActiveX pour transposer propriétés et méthodes en fonctions Visual LISP (cette aide comporte depuis plusieurs versions des exemples Visual LISP en plus des exemples VBA). Les fonctions vlax- (Visual Lisp ActiveX) concernent généralement l'accès à toute API ActiveX (celle d'AutoCAD comme celles d'applications tierces). On y trouve aussi les fonctions géométriques vlax-curve-* qui peuvent s'avérer très utiles.Comme pour les fonctions vla-, l'utilisation des fonctions vlax-get-(property), vlax-put-(property) et vlax-invoke-(method) suppose une connaissance ou un accès à la documentation de l'API concernée (AutoCAD ou autre). De nombreuses fonctions sont incontournables pour convertir des objets de types COM (variants, safearray, vla-object) en types AutoLISP et inversement. C'est à mon sens la partie la plus "lourdingue" du "Visual LISP" et c'est pourquoi j'avais écrit les routines de AutomationHelpers.lsp qu'on trouve en bas de cette page. Les fonctions vlr- (Visual Lisp Reactors) concernent les réacteurs. Je pense qu'elle ne concernent que des LISPeurs avertis dont le niveau d'expérience comprend certainement aussi la compréhension de la documentation en anglais. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
didier Posté(e) le 2 mai 2018 Auteur Posté(e) le 2 mai 2018 Coucou Je suis complètement d'accord avec tes propos.Ça me donne le vertige toutes ces fonctions et c'est bien possible que je fasse un exposé dans le sens que tu expliques pour la gestion des propriétés et méthodesEnsuite c'est dans les exemples que les fonctions apparaîtront et que les gens iront (peut-être) voir l'aide en ligne AutoCADJe réfléchisQuant aux réacteurs, je plussoie d'autant plus que je suis plus que débutant dans le genre. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 2 mai 2018 Posté(e) le 2 mai 2018 +1 avec (gile) Le plus simple est d'expliquer la logique, comment on retrouve ses petits.Et l'aide en ligne sur les API est le moyen le plus simple. Reste à le traduire en lisp, ce qui n'est pas toujours le plus facile. Mais avec de la persévérance et Cadxp :D @+ 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 3 mai 2018 Posté(e) le 3 mai 2018 Bonjour Utiliser les réacteurs est relativement simple. Le plus compliqué est d'éviter les effets de bords.Il faut bien avoir l'utilité d'utiliser ce type de fonction, car cela prend des ressources et bien souvent, une simple fonction qui traite l'ensemble du dessin suffit amplement.Tu as ce message qui utilise la synthèse vocale de l'ordinateur qui dit ce que tu fais. @+ 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 22 février 2019 Auteur Posté(e) le 22 février 2019 Coucou Nouveau chapitre,Le grand Bonuscad vient de nous proposer un CAMEMBERT et ça a été allègrement saluéComme promis je complète les pages de da-code avec ce jeu de MEMORYJe trouve cette façon de faire didactique car plein de fonctions sont utilisées et on comprend tout de suite à quoi ça sert, du moins je le pense... Merci de vos retours Amicalement Lien vers la Page concernée Éternel débutant... Mon site perso : Programmer dans AutoCAD
Fraid Posté(e) le 22 février 2019 Posté(e) le 22 février 2019 Bonne idée, sympa et simple. Un peut d'indentation ferais pas de mal, si ton html te le permet. Amicalement. https://github.com/Fraiddd
didier Posté(e) le 23 février 2019 Auteur Posté(e) le 23 février 2019 Coucou Hélas non, c'est du "bricolage" Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
COME Posté(e) le 26 février 2019 Posté(e) le 26 février 2019 Bonne idée, sympa et simple. Un peut d'indentation ferais pas de mal, si ton html te le permet. Amicalement. Salut, merci pour ce terme que je ne connaissais pas, on en apprend tous les jours : je me coucherai moins bête ce soir (enfin j'espère ...) COME La vie sans musique est tout simplement une erreur, une fatigue, un exil. »Friedrich Nietzsche
didier Posté(e) le 18 mars 2019 Auteur Posté(e) le 18 mars 2019 Coucou Je vous remercie de me dire si ma nouvelle page sur les BULGE est compréhensible ou pasJ'ai concaténé des connaissances glanées un peu partout pour tenter de clarifier cette étrange valeurMais plus j’avançais plus je me questionnais sur la pertinence de telle ou telle autre explication.Merci de me tenir au parfum de votre ressenti, avez-vous appris quelque chose, n'ai-je pas fait d'erreurs, n'ai-je pas fait trop de raccourcis ? la page est ICI Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
(gile) Posté(e) le 18 mars 2019 Posté(e) le 18 mars 2019 Salut, Juste un truc, pour aborder la notion de bulge sans passer par les angles et la trigonométrie (certains sont allergiques), on peut aussi définir le bulge comme le rapport entre la flèche et demi-corde (on peut y percevoir la notion de courbure), reste juste à préciser le sens (horaire ou anti-horaire) par le signe. Une petite remarque : "Si, au lieu du quart de la tangente de l'angle les développeurs avaient choisi la moitié de la tangente, il aurait fallu gérer les angles supérieurs à 180 ° par une valeur de signe alors qu'avec le quart de la tangente..."Il s'agit plutôt de la tangente du quart de l'angle (ou du demi angle). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 18 mars 2019 Posté(e) le 18 mars 2019 Hello En résumé avec leurs histoires de corde, arc, flèche, etc, Didier et Gilles sont des Robins des Bois !? Bye, lecrabe Autodesk Expert Elite Team
didier Posté(e) le 18 mars 2019 Auteur Posté(e) le 18 mars 2019 Coucou Merci beaucoup.Dans un premier temps je vais corriger ce que tu as relevé à juste titreEnsuite je vais relire et repenser à ce que tu exprimes dans le triangle rectangle Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
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