totodupolo Posté(e) le 27 février 2008 Posté(e) le 27 février 2008 Bonjour, J'ai réaliser un plan avec des points topo "projet" en utilisant le bloc par défaut d'Autocad TCPOINT.Pour réaliser le fond de forme, j'ai besoin de retrancher à l'attribut "altittude" une valeur qui depend de la structure mise en place (une dizaine de cm). J'aimerai savoir si il existe un lisp me permettant de modifier cette valeur altittude pour un groupe de bloc avec une valeur donnée. D'avance merci
Patrick_35 Posté(e) le 27 février 2008 Posté(e) le 27 février 2008 Salut Avec le lisp MAT ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lili2006 Posté(e) le 27 février 2008 Posté(e) le 27 février 2008 Bonsoir à toutes et tous, totodupolo, le bloc par défaut d'Autocad TCPOINT.Non, TCPOINT est un point covadis. Patrick_35, c'est marrant que tu parles de MAT car je voulais te demander si il était possible de rajouter un bouton pour pouvoir selectionner à l'écran le bloc (je suis sur un plan avec plus de 200 blocs, ouf !). Merci d'avance. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
totodupolo Posté(e) le 27 février 2008 Auteur Posté(e) le 27 février 2008 Salut, J'ai essayé avec MAT mais ce que je voudrais obtenir c'est une soustraction (ou une addition) d'une valeur x avec la valeur existante. Par exemple, un groupe d'attribut d'altittudes différentes que je voudrais diminuer de 20 cm. Voilà, voilà. Merci d'avance :)
lili2006 Posté(e) le 27 février 2008 Posté(e) le 27 février 2008 Re, Avec ce lisp peut-être ? (defun C:AJOUTRAD(/ Sel Nb i txt) (setq const (getreal "\nEntrez la constante:")) (setq Sel (SSget '((0 . "TEXT")) )) (setq Nb (sslength Sel)) (setq i 0) (while ( (setq e (ssname Sel i)) (setq Ent (entget e)) (Setq txt (cdr (assoc 1 Ent))) (setq nomb (substr txt 3)) (setq nombr (atof nomb)) (setq deb (substr txt 1 2)) ;(setq col (cdr (assoc 2 Ent))) (setq tot (+ const nombr)) (setq Ent (subst (cons 1 (strcat deb (rtos tot 2 2)))(assoc 1 Ent) Ent)) ;(setq Ent (subst (cons 62 8) (assoc 67 Ent) Ent)) (entmod Ent) (setq i (+ 1 i)) ) ) Tu peux aussi faire un tour ici,... [Edité le 27/2/2008 par lili2006] Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Patrick_35 Posté(e) le 27 février 2008 Posté(e) le 27 février 2008 si il était possible de rajouter un bouton pour pouvoir selectionner à l'écran le bloc Tu as une case à cocher pour faire la sélection. Bravo pour ton lisp. Ce serait bien maintenant de l'adapter pour travailler avec un attribut pour répondre à totodupolo. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lili2006 Posté(e) le 27 février 2008 Posté(e) le 27 février 2008 Re, Bravo pour ton lisp. Oh là, on se calme, ce n'est pas de moi mais d'un étudiant qui c'est fait aider par son prof d'info suite à un besoin sur son dossier de fin d'étude. J'ai formulé le besoin et regardé l'écriture pour essayer de comprendre mais je suis encore bien inccapable d'en arriver là, forcément j'ai pas encore pris le temps de bosser tout ça alors,... Tu as une case à cocher pour faire la sélection. oui, mais elle est grisé tant que l'on a pas selectionné un bloc depuis le menu déroulant. Au lieu d'utiliser le menu, faire la selection graphiquement aurait été pratique.Ou alors, j'ai mal compris le fonctionnement de ce lisp, ce qui ne m'étonnerai pas non plus d'ailleurs,.... Merci d'avance. [Edité le 27/2/2008 par lili2006] Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Patrick_35 Posté(e) le 28 février 2008 Posté(e) le 28 février 2008 Salut liliC'est moi qui n'ai pas compris ta demande.Donc MAT a été mis à jour et passe en V4.00 Pour ton lisp, je me doutais bien que tu en étais pas l'auteur, car il me semble qu'il a la même structure que celui que tu as déjà publié récemment et dont tu disais qu'il était de l'un de tes élèves. C'est juste pour t'inciter un peu ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
totodupolo Posté(e) le 28 février 2008 Auteur Posté(e) le 28 février 2008 bonjour, Déjà, merci de vous préoccuper de mon sort... c'est super sympa Avec ce lisp peut-être Lili2006, j'ai essayé ton lisp mais il ne fonctionne pas avec les blocs! (ou alors c mon soft qui bug!)D'autre part, ce que je voudrais, c'est (désolé si je me repète!) soustraire à la valeur existante une valeur donnée (ou l'ajouter). Pour ce qui est de mon projet, je l'ai fait à la main :P ... mais pour la prochaine fois! Cela servira surement à d'utre bougre que moi, j'en suis sûr! Merci
lili2006 Posté(e) le 28 février 2008 Posté(e) le 28 février 2008 Bonsoir à toutes et tous, Patrick_35, un grand merci, ça marche du tonnère, en plein dans le mille !!! C'est juste pour t'inciter un peu Ce n'est toujours pas l'envie qui manque Mais le temps,... ! Lili2006, j'ai essayé ton lisp mais il ne fonctionne pas avec les blocs! (ou alors c mon soft qui bug!) Pourtant Patrick_35 l'avais testé et pas de problème (lien donné message N° 4). Sur Covadis v2007-8 du lycée sur le bloc point TCPOINT, pas de pb non plus,... Désolé, je ne comprend pas,... Quelqu'un d'autre peut-être.[Edité le 28/2/2008 par lili2006] [Edité le 28/2/2008 par lili2006] Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
totodupolo Posté(e) le 29 février 2008 Auteur Posté(e) le 29 février 2008 Bonjour lili, J'ai bien essayé ton lisp. Je rentre ma valeur, mais lorsque je selectionne mes blocs, la ligne de commande reste Choix des objets: 0 trouvé(s)puis quand je tape entrée, il marque. ; erreur: type d'argument incorrect: lselsetp nil au fait, j'utilise Covadis 9.1g mais je ne pense pas que ce soit lié à la version (quoi que).
(gile) Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 Salut totodupolo, J'ai bien essayé ton lisp. Je rentre ma valeur, mais lorsque je selectionne mes blocs, la ligne de commande reste Le LISP donné par lili2006 ne fonctionne qu'avec des textes aucun autre type d'entité ne peut être sélectionné, et il ne vérifie pas la validité du jeu de sélection, d'où le message : ; erreur: type d'argument incorrect: lselsetp nil Qui veut dire que le jeu de sélection est vide. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 29 février 2008 Posté(e) le 29 février 2008 Bonsoir à toutes et tous, Oups, désolé ! J'ai oublié de dire que nous utilisons un bloc point topo copié dans le bon calque et transformons les attributs en texte (burst) pour ne plus les filtrer en points covadis !! Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 1 mars 2008 Posté(e) le 1 mars 2008 Salut, Un petit truc vite fait : (defun c:adat (/ att lst tag nam add ss n) (if (and (setq att (car (nentsel "\nSélectionnez un attribut à modifier: "))) (setq lst (entget att)) (= (cdr (assoc 0 lst)) "ATTRIB") (numberp (read (cdr (assoc 1 lst)))) (setq tag (cdr (assoc 2 lst))) (setq nam (cdr (assoc 2 (entget (cdr (assoc 330 lst)))))) ) (if (and (setq add (getreal "\nEntrez la valeur à ajouter ou soustraire: ")) (princ "\nSélectionnez les blocs à modifier.") (setq ss (ssget (list '(0 . "INSERT") (cons 2 nam)))) (setq n 0) ) (while (setq blc (ssname ss n)) (setq att (entnext blc) lst (entget att) ) (while (= (cdr (assoc 0 lst)) "ATTRIB") (if (and (= (cdr (assoc 2 lst)) tag) (numberp (setq val (read (cdr (assoc 1 lst))))) ) (progn (entmod (subst (cons 1 (rtos (+ val add))) (assoc 1 lst) lst ) ) (entupd blc) ) ) (setq att (entnext att) lst (entget att) ) ) (setq n (1+ n)) ) ) (princ "\nL'objet sélectionné n'est pas un attribut.") ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 1 mars 2008 Posté(e) le 1 mars 2008 Bonjour à toutes et tous, Comme ça, on aura plus besoin de transformer les attributs en texte. Merci (gile) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
totodupolo Posté(e) le 3 mars 2008 Auteur Posté(e) le 3 mars 2008 Merci beaucoup (gile), Ca marche impec' :D !!! A charge de revanche
lecrabe Posté(e) le 3 mars 2008 Posté(e) le 3 mars 2008 Hello Gilles A partir de ton ADAT, j'ai realise le MUAT en modifiant simplement le nom du DEFUN, l'invite / message et surtout la ligne critique : ;; (entmod (subst (cons 1 (rtos (+ val add))) (entmod (subst (cons 1 (rtos (* val add))) Merci beaucoup Gilles, c TIP-TOP, Le Decapode Autodesk Expert Elite Team
richard-c Posté(e) le 4 mars 2008 Posté(e) le 4 mars 2008 Bonjour, ADAT.lsp fonctionne bien, mais [surligneur] est ce normal[/surligneur] que si on modifie un (des) bloc avec ce programme, le Z du point reste à son altitude d'origine ? exemple : un point placé en X,Y,101.00 et modifié avec ADAT de -1.00 est bien modifié à l'écran et indique 100.00 mais reste toujours en X,Y,101.00 A+
richard-c Posté(e) le 4 mars 2008 Posté(e) le 4 mars 2008 suite à mon message précedent ne serait il pas mieux que les bloc modifié soient copiés sur un calque nouveau(de couleur rouge par exemple) afin de préserver les points originaux ? A+
lecrabe Posté(e) le 4 mars 2008 Posté(e) le 4 mars 2008 Hello Qq remarques sur les suggestions de Richard-C ... C curieux, mais pourquoi pas !? Mais bon, si l'attribut (ou texte) choisi représente bien l'altitude Z du bloc (ou texte), en effet on pourrait éventuellement poser la question sur le déplacement "Oui" ou "Non" ! Par contre, il serait éventuellement sympa de poser une question du genre: Voulez vous modifier les blocs existants ou bien générer une copie des blocs (avec la modification) sur le calque courant ? :cool: (Sous entendu, on s'est placé sur un calque différent du calque d'origine des blocs) Autre amélioration de la routine : traiter aussi les textes / multi-texteset poser la question addition/soustraction ou bien multiplication/division par une valeur numérique réelle positive ou négative, ainsi on aura une seule routine pour "tout" faire ! :D Le Decapode (Générateur de Boulot) :P Autodesk Expert Elite Team
lili2006 Posté(e) le 4 mars 2008 Posté(e) le 4 mars 2008 Bonjour à toutes et tous, En voilà de bonnes idées de si bon matin,... Bonne journée à tous. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 4 mars 2008 Posté(e) le 4 mars 2008 Bonjour, ADAT.lsp fonctionne bien, mais [surligneur] est ce normal[/surligneur] que si on modifie un (des) bloc avec ce programme, le Z du point reste à son altitude d'origine ? exemple : un point placé en X,Y,101.00 et modifié avec ADAT de -1.00 est bien modifié à l'écran et indique 100.00 mais reste toujours en X,Y,101.00 A+ Salut, Je ne sais si c'est "normal" mais adat essaye de répondre à la demande qui était de modifier la valeur d'un attribut, pas de déplacer les blocs...Il me semble bien que des routines on été publiées pour changer l'altitude de blocs, il faut faire une recherche. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 4 mars 2008 Posté(e) le 4 mars 2008 Re, répondre à la demande qui était de modifier la valeur d'un attribut, pas de déplacer les blocs... Absolument ! C'est uniquement une info de plan, c'est la raison pour laquelle l'attribut n'est pas obligatoire. Mais, pour d'autres utilisations, les demandes de richard-c et de lecrabe ne sont pas ininteressantes,... Bonne journée. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
richard-c Posté(e) le 4 mars 2008 Posté(e) le 4 mars 2008 je suis d'accord avec toi (gile), tuas bien répondu à la question,c'étas juste une contatation de ma part en ce qui concerne le déplacement des points et le changement de calque, je me suis amusé à essayer ce programme, pour voir, car je n'en ai pas l'utilité pour le moment. A+
Patrick_35 Posté(e) le 5 mars 2008 Posté(e) le 5 mars 2008 Salut Il reste plus qu'a jouer avec les réacteurs ;) @+ 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