VDH-Bruno
Membres-
Compteur de contenus
1 146 -
Inscription
-
Dernière visite
-
Jours gagnés
20
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par VDH-Bruno
-
Bonjour, Un truc comme ça? (command "rotation" "p" "" pause "r" (getvar 'lastpoint) pause pause) A+
-
[Résolu] Modifier blocs espace objet
VDH-Bruno a répondu à un(e) sujet de -Olivier- dans Pour aller plus loin en LISP
Salut Patrick_35 Il sera traité car il existe aussi en model objet, je rappel que ceux qui ne doivent pas être traité son uniquement présent dans les présentations (dixit Olivier) J'ai honteusement copier-collé, j'avoue… <_< +1 Oui et 3 fois oui, totalement d'accord avec ça :D A+ -
[Résolu] Modifier blocs espace objet
VDH-Bruno a répondu à un(e) sujet de -Olivier- dans Pour aller plus loin en LISP
Bonjour Olivier, Visiblement et comme d'habitude Patrick_35 à été le plus rapide.. Je poste quant même ma version qui modifie les définitions de bloc ayant au moins une référence de bloc inséré dans le model objet. ;; Suppression des hachures dans les définitions de bloc ayant au moins une référence ;; dans l'espace objet (defun c:sham (/ doc blo ss bl lst i) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (setq blo (vla-get-blocks doc)) ;; Sélection des références de bloc de l'espace objet (setq ss (ssget "X" '((0 . "INSERT") (410 . "Model")))) ;; Lister les noms des définitions de bloc issue des références sélectionnés (repeat (setq i (sslength ss)) (and (not (member (setq bl (cdr (assoc 2 (entget (ssname ss (setq i (1- i))))))) lst)) (setq lst (cons bl lst)) ) ) ;; Adaptation du lisp sha pour fonctionner par Item a lieu d'opérer sur toute la collection (foreach x lst (vlax-for ent (vla-Item blo x) (and (and (eq (vla-get-objectname ent) "AcDbHatch") (= (vla-get-patternname ent) "SOLID")) (vla-delete ent) ) ) ) (vla-endundomark doc) (vla-regen doc acAllViewports) (princ) ) Cordialement Bruno (Ps: Tu devrais perdre moins de cheveux sur cette version ;) ) -
Bonjour famaice, A te lire oui, je pense que tu as bien compris l'idée, pour finir de t'en convaincre, tu peux essayer les lignes de codes du message n°12 qui illustre bien le propos, tu peux également étendre ce raisonnement aux noms de fonction comme suggéré dans le message n°8 avec la redéfinition de la fonction *error*. Ce qui par la suite t'amènera à comprendre qu'en VLisp, il n'y a pas vraiment de différence entre données et fonctions… A+
-
Bonjour, La limite est imposé par l'actualisation de la mise à jour de ton champ, géré par la variable système FIEDEVAL, Maintenant pour une actualisation automatique à l'édition de tes attributs, je crains que tu ne puisse échapper à de la programmation.. A+
-
4 nouvelles fonctions AutoLISP dans A2012
VDH-Bruno a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
Bonjour (gile), Merci pour le partage, très intéressant comme retour (même si j'évolue encore sous AutoCAD 2007) Oui, c'est bien ce qu'il me semblait avoir détecté avec tous ces if imbriqué qui apparaissent de plus en plus dans ton code… :D Amicalement Bruno -
Projet d'étude :Calcul automatisé du poids d'aciers par éléments de structure
VDH-Bruno a répondu à un(e) sujet de ArnaudCru dans LISP et Visual LISP
Bonjour Arnaud, J'en suis heureux Le mieux je pense et de faire un jeu de sélection avec ssget puis de le traiter, pour l'utilisateur il sera dans un système de sélection classique (possibilité d'ajout ou de suppression d'entité à la sélection) avec filtrage des entités texte.. Je te donne en exemple de quelques lignes à tester et décortiquer pour l'addition de tes poids ,traitement du code dxf 1 le principe est le même pour les autres codes dxf (fonctionne seulement sur des textes simples). ;; Création d'un jeu de sélection ->sélection des entitées textes (setq poids 0 ss (ssget '((0 . "TEXT"))) ) ;; traitement du jeu de sélection et addition des codes dxf1 (repeat (setq i (sslength ss)) (setq poids (+ poids (atof (cdr (assoc 1 (entget (ssname ss (setq i (1- i))))))))) ) A+ -
Projet d'étude :Calcul automatisé du poids d'aciers par éléments de structure
VDH-Bruno a répondu à un(e) sujet de ArnaudCru dans LISP et Visual LISP
Bonjour, Fait une recherche sur la gestion d'erreur et la fonction *error*, sinon ici: http://cadxp.com/topic/40088-1er-projet-lisp-dessin-tremie/page__view__findpost__p__223662 j'ai filtré tout récemment qq liens sur le sujet A+ -
Encadrement de nombres
VDH-Bruno a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
C’est heureux car je n’ai rien changé à l’algorithme proposé par (gile), ce n’est qu’un jeu de réécriture des conditionnelles, d’ailleurs à la relecture pour ce cas particulier au jeu de la concision et de l'efficacité, on gagnerait à redéfinir la fonction funsup comme ceci: (defun encadre (num lst / inf sup funsup) (defun funsup (sup n num) (if (> n num) (setq funsup >))) (foreach n lst (cond ((< inf n num) (setq inf n)) ; borne inf ((funsup sup n num) (setq sup n)) ; borne sup ) ) (list inf sup) ) C’est un échange, sur un plan personnel le sujet m’a offert la pause récréative dont j'avais grandement besoin, merci à toi :) . -
Encadrement de nombres
VDH-Bruno a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
Bonjour, En lisant vos réponses, une variante très "lispienne" (ou devrais-je plutôt dire très "gillienne") m’a traversé l’esprit, donc pour le fun et le plaisir : (defun encadre (num lst / inf sup funsup) (defun funsup (sup n num) (if (> n num) (defun funsup (sup n num) (> sup n num)) ) ) (foreach n lst (cond ((< inf n num) (setq inf n)) ; borne inf ((funsup sup n num) (setq sup n)) ; borne sup ) ) (list inf sup) ) Amicalement Bruno -
Script pour mettre toutes les hachures en arrière plans
VDH-Bruno a répondu à un(e) sujet de gwenibe dans AutoCAD 2015
Salut, Pour info et depuis ma version 2007… Petit clin d’œil, d’un camarade Autocadien qui est figé dans le passé A+ Bruno -
Oui, ou en faisant échap, je n’ai volontairement pas développé ce sujet de peur que tu te disperse.. Une fois que ton code te donnera satisfaction, je t’ai rapidement filtré 2, 3 liens sur ce forum. Liens qui devraient te permettre d’avancer sur cette question si tu es intéressé. http://cadxp.com/topic/35020-fonction-error/page__view__findpost__p__190094 http://cadxp.com/topic/30869-fonctionne-malgres-lerreur/page__view__findpost__p__167177 http://cadxp.com/topic/28642-arguments-et-variables/page__view__findpost__p__156100 A+
-
Bonjour et bienvenue Tu as très certainement un conflit avec l’accroche objet, c.a.d. lors de la saisie au clavier des coordonnées AutoCAD privilégie l’accroche objet plutôt que la coordonnée spécifié lorsqu’il a le choix... (Cas d'un zoom éloigné) Pour remédier à cela 3 possibilités : I – Dans les Options d’environnement dans les préférences utilisateurs donner la priorité à la saisie clavier(OSNAPCOORD=1) plutôt que saisie clavier, script exceptés qui est le réglage par défault sous AutoCAD. II – En mémorisant et en désactivant l’accroche objet (OSMODE =0) au début du programme et en restituant à sa valeur initiale en sortie de programme, par la suite avec cette méthode il peut être judicieux de s’intéresser à la gestion d’erreurs . III – Sinon dans ton appel à la fonction command faire précéder toute tes saisies par l’instruction _none (aucun), comme ceci : (command "_pline" "_none" a "_none" b "_none" c "_none" d "c") En espérant avoir été complet sur le sujet Cordialement Bruno (Ps: en lisp il n'est pas nécessaire d'initialisé les variables)
-
Bonjour, Une petite intervention pour préciser un peu les choses et faire vraiment simple (il n’y a pas que des géomètres sur le forum et tout le monde ne travaille pas en mètre), de plus je connais des collègues qui préfèrent être homogène dans les unités entre les espaces de travail/présentations en régler le rapport entre espaces de présentations et sortie papier dans les options de la boite de dialogue d'impression... Dans le facteur de zoom entre l’EO et l’EP (Numérateur/Dénominateur XP) : Le numérateur représente la conversion d’unité entre l’EO et EP (dans l’exemple de didier une convertion de m -> mm soit un rapport de 1000). Le dénominateur quant à lui représente l’échelle du dessin (ex : 200ème). Ps: Sortir des plans 1/333 (hélas, j’en vois aussi du 1/33 en ce qui me concerne), certainement un excès de zèle de dessinateurs pensant faire du 1/3, pour mémoire il existe des kutchs gradué au 1/300ème mais au 1/333ème j'en ai jamais vu ;) A+
-
problème avec attributs annotatifs de bloc
VDH-Bruno a répondu à un(e) sujet de sebLM5P dans AutoCAD 2012
Bonjour, Je crois être une personne posé et réfléchi, mais ce type d’argumentaire me fait hurler, surtout qu’il a fait son chemin et s’impose de plus en plus… C’est un belle con…rie. Pas le temps de développer plus, pour illustrer ma pensée je dirai qu’une chose « Le mieux est l’ennemie du bien ». A+ -
Re, Regarde si tu ne peux pas réparer/réinstaller les Express Tools sur ton post, le problème vient de là et non du lisp d'Olivier. A+
-
Re, Le texte résultant n'est pas un texte multiple? Problème avec la commande convert Text to Mtext des Express Tools qui ne se lance pas, je pense.. Execute _txt2mtxt sur la ligne de commande AutoCAD, que ce passe t'il? A+ (Ps: idem pour les images miniature trop petite)
-
Re, Olivier pour moi le code est bon. Même avec la commande texte tu peux avoir des surprises, par exemple en insérant des codes ASCII pour avoir acces à des caractères spéciaux, les codes %%U (souligné), %%P, %%C ect…. Ce qu’il faut nous dire c’est ce qu’il y a dans ton texte, avec un extrait de dwg ou y verrais certainement plus clair. A+ Bruno
-
Salut, Evite également de lancer le lisp sur les textes multiples qui contiennent trop de caractères de pagination, c'est derniers n'étant pas exclut du traitement dans la routine, ils seront traité comme du texte et apparaitrons dans l'écriture en colonne de ce dernier. A+
-
Bonjour, Suivre ce lien: http://cadxp.com/topic/30582-selectionner-une-ligne-de-cotes-en-une-seule-manip/page__st__20 Pour le code voir ici http://www.creao.fr/uploads/lisp/sel_chaine_cotes.lsp A+
-
Bonjour, En l'état non, d'ailleurs c'est à cela que je faisais allusion lorsque j'invitais à consulter le lien (dans lequel la question avait été évoqué) de mon premier message. Je ne connais pas AutoCAD 2015, à lire nosset tu auras peut être une solution en natif plus satisfaisante, a voir.. A+
-
Re, J'ai peut être lu un peu vite tu copie/colle effectivement dans le bloc note, tu nommes et enregistre ton fichier avec l'extension .lsp (ex: Atomick.lsp) Puis tu le charges dans Autocad (sinon un simple glissé/déposé dans ton dessin actif depuis l'explorateur window suffit.) Et tu lances au clavier la commande dimAtomick Sinon je te joint le fichier à charger en PJ. Cordialement, Atomick.lsp
-
Re, C'est déjà très bien pour quelqu'un qui n'y connait pas grand chose, tu as fait le plus dure :) Et après tu tape dimAtomick sur la ligne de commande pour lancer ton lisp... A+ VDH
-
Bonjour, Trés trés rapidement, j’ai modifié pour ton besoin spécifique un code publié précédemment sur CADxp : http://cadxp.com/topic/37002-cotation/page__p__202500#entry202500 Discussion que je t’invite à lire pour prendre connaissance des limites de la méthode (qui oblige à forcer le texte de cotation) et de ce que j'en pense. Le code : ;; Adaptation rapide et spécifique d'un code publié précédemment: VDH-Bruno ;; http://cadxp.com/topic/37002-cotation/page__p__202500#entry202500 (defun c:dimAtomick (/ ss i e dim exposant) (setq ss (cond ((ssget "_I" '((0 . "DIMENSION")))) (T (princ "\nSélectionnez les cotations à traiter...") (ssget '((0 . "DIMENSION")))) ) ) (repeat (setq i (if ss (sslength ss) 0 ) ) (if (/= "" (setq e (entget (ssname ss (setq i (1- i)))) dim (rtos (cdr (assoc 42 e)) 2 3) exposant (substr dim (+ (vl-string-position (ascii ".") dim) 4)) ) ) (entmod (subst (cons 1 (strcat (substr dim 1 (1- (strlen dim))) "{\\H0.7x;\\S" exposant "^;}")) (assoc 1 e) e ) ) ) ) (princ) ) A+ Edit Corrigé le code suite à une adaptation un peu trop rapide de ma part
-
Une macro 2 en 1
VDH-Bruno a répondu à un(e) sujet de jehudiel dans Personnalisation, macros, DIESEL
Bonjour jehudiel et bienvenue, +1. A lire ta réaction pour moi tu t’es déjà rattrapé, le principal était de ne pas se braquer. ;) Pour développer un peu la réaction de mes camarades (que visiblement tu as déjà compris), il n’est pas sûr que cela aurait pris 5mn, de plus si on ne fait pas un minimum de trie (basé sur une impression de bonne volonté) prendre 5mn sur chaque demande, se comptabilise vite en jour perdus.. Perdu également pour le demandeur car sans un minimum d’investissement, il n’en retire rien sur un plan personnel… Cordialement, Bruno
