YAYI Posté(e) le 8 avril 2005 Posté(e) le 8 avril 2005 Bonjour, J'aimerai savoir si il existe un lisp qui permettrait de passer des blocs avec attributs (pour renseigner des altitudes TN) en 2D vers la 3D c'est à dire avec le Z renqseigné automatiquement en sachant que dans les attributs on connait le Z (format texte).Merci de répondre rapidement car on est un peu bloqué à cause de ça !!! A +
Tramber Posté(e) le 8 avril 2005 Posté(e) le 8 avril 2005 La commande s'appelle ATTEXT et permet d'extraire la valeur Z d'un attribut. Mais la question n'est pas claire. Tu veux déplacer en Z tes blocs ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 8 avril 2005 Posté(e) le 8 avril 2005 J'ai bien une routine que j'ai écrite depuis fort longtemps, elle n'est pas à jours pour les versions actuelles, mais je pense qu'elle peut répondre a ton problème pour des entités "INSERT".Essaye, ca ne mange pas de pain! (defun mdf_10 (lst cod / nw_pt) (setq nw_pt (trans (cdr (assoc cod lst)) (cdar lst) 0)) (subst (cons cod (list (car nw_pt) (cadr nw_pt) 0.0)) (assoc cod lst) lst ) ) (defun mdf_210 (lst / ) (subst '(210 0.0 0.0 1.0) (assoc 210 lst) lst ) ) (defun chg_lst (dx_lst dx_cod / ) (while dx_cod (cond ((eq (car dx_cod) 10) (setq dx_lst (mdf_10 dx_lst 10)) ) ((eq (car dx_cod) 11) (setq dx_lst (mdf_10 dx_lst 11)) ) ((eq (car dx_cod) 12) (setq dx_lst (mdf_10 dx_lst 12)) ) ((eq (car dx_cod) 13) (setq dx_lst (mdf_10 dx_lst 13)) ) ((eq (car dx_cod) 210) (setq dx_lst (mdf_210 dx_lst)) ) ) (setq dx_cod (cdr dx_cod)) ) (entmod dx_lst) ) (defun id_ent (name / ) (setq dxflst (entget name)) (setq dxfnam (cdr (assoc 0 dxflst))) (cond ((eq dxfnam "LINE") (chg_lst dxflst '(10 11 210)) ) ((or (eq dxfnam "POINT") (eq dxfnam "CIRCLE") (eq dxfnam "ARC") (eq dxfnam "ATTDEF") (eq dxfnam "SHAPE") ) (chg_lst dxflst '(10 210)) ) ((eq dxfnam "TEXT") (if (assoc 11 dxflst) (chg_lst dxflst '(10 11 210)) (chg_lst dxflst '(10 210)) ) ) ((or (eq dxfnam "TRACE") (eq dxfnam "SOLID") (eq dxfnam "3DFACE") ) (chg_lst dxflst '(10 11 12 13 210)) ) ((eq dxfnam "POLYLINE") (setq s_lst (entget (entnext (cdar dxflst)))) (while (/= (cdr (assoc 0 s_lst)) "SEQEND") (chg_lst s_lst '(10)) (setq s_lst (entget (entnext (cdar s_lst)))) ) (setq dxflst (subst '(10 0.0 0.0 0.0) (assoc 10 dxflst) dxflst)) (entmod dxflst) (chg_lst dxflst '(210)) (entupd (cdar dxflst)) ) ((eq dxfnam "INSERT") (cond ((and (assoc 66 dxflst) (not (zerop (cdr (assoc 66 dxflst))))) (setq s_lst (entget (entnext (cdar dxflst)))) (while (= (cdr (assoc 0 s_lst)) "ATTRIB") (if (assoc 11 s_lst) (chg_lst s_lst '(10 11 210)) (chg_lst s_lst '(10 210)) ) (setq s_lst (entget (entnext (cdar s_lst)))) ) ) ) (chg_lst dxflst '(10 210)) (entupd (cdar dxflst)) ) ((eq dxfnam "VIEWPORT") (prompt "\nNe peut modifier une entitée fenêtre, valeurs inchangées.") ) ((eq dxfnam "DIMENSION") ) ) ) (defun c:3DTO2D () (setq ind 0) (setq js (ssget)) (repeat (sslength js) (setq n_ent (ssname js ind)) (setq ind (1+ ind)) (if (= ind 32768) (setq ind (float ind)) ) (id_ent n_ent) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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