speedy Posté(e) le 28 septembre 2011 Posté(e) le 28 septembre 2011 Bonjour à toutes et tous j'ai reçu un plan avec un semi de points "3d" sans info de la lecture de ce point,je suis à la recherche d'un lisp qui insère un bloc tcpoint et qui inscrive l'altitude du point Z à l'étiquette de l'attribut "alt". je voulais éviter d'exporter les points 3d en texte et ensuite refaire une insertion de bloc avec cette liste. merci de votre aide. Michel a
didier Posté(e) le 28 septembre 2011 Posté(e) le 28 septembre 2011 coucou tu veux un lisp "tout fait"ou bien tu veux qu'on t'aide à le faire ? est-ce que la définition du "tcpoint" existe dans le dessin ? amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
speedy Posté(e) le 28 septembre 2011 Auteur Posté(e) le 28 septembre 2011 Salut DidierJe bricole en lisp, voici le code;Insérer un bloc avec attribut sur les points 3d et affecte l'alti à l'attribut ALT (défini dans le dessin) (defun c:BlK2PTZ (/ ss ct len e eb bname pt attreqhold echohold nb1 nb ent ptz attAlt) (setq echohold (getvar "CMDECHO")) (setvar "CMDECHO" 0) (setq attreqhold (getvar "ATTREQ")) (setvar "ATTREQ" 0) (setq bname (getstring "\nEntrez le nom du bloc: ")) (if (tblsearch "block" bname) (progn (princ "\nSelectionnez les points:") (if (setq ss (ssget '((0 . "POINT")))) (progn (setq len (sslength ss)) (setq ct 0) (while (< ct len) (setq e (ssname ss ct)) (setq ct (+ ct 1)) (setq eb (entget e)) (setq pt (cdr (assoc 10 eb))) ;;;insertion du bloc (command "_insert" bname pt "" "" "") ) ) (princ "\nPas de points sélectionnés.") ) ) (princ "\nbloc non défini dans le dessin.") ) (setq blocs (ssget "x" (list (cons 2 "TCPOINT")))) (if (= blocs nil) (exit)) (setq nb (sslength blocs)) (setq nb1 0) (while (< nb1 nb) (setq ent (ssname blocs nb1)) (setq pt (cdr (assoc 10 (entget ent)))) (setq ptz (rtos (caddr pt) 2 2)) (setq attAlt (entget (entnext (entnext ent)))) (entmod (subst (cons 1 ptz) (assoc 1 attAlt) attAlt)) (setq nb1 (+ nb1 1)) ) ) ;;;Restoration des variables (setvar "CMDECHO" echohold) (setvar "ATTREQ" 0) (princ) )Ce code que j'ai adapté vient en partie du forum, il fonctionne pour ce besoin là mais.. Merci Michel a
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