stugeol Posté(e) le 20 août 2012 Posté(e) le 20 août 2012 Bonjour,Si la valeurs du type de ligne du calque 0 est "Type1", et qu'un objet du calque 0 a comme valeurs de type de ligne "DuCalque", la valeurs exporté est "DuCalque".Je suis à le recherche d'une routine qui remplace la valeur du type de ligne de l'objet ("DuCalque"), par la valeur du type de ligne du calque ("Type1").Le but est de ne plus avoir de valeur "DuCalque" pour le type de ligne lors de l'extraction de données.Voici comment je compte exploité cette routine : 1) Séléction des objets qui ont pour type de ligne DuCalque2) Exécution de la routine3) extraction des données Je vous remercie par avance de votre aide.Cordialement. Petit à petit on devient moins petit
VDH-Bruno Posté(e) le 20 août 2012 Posté(e) le 20 août 2012 Bonjour, Pour l'exemple(defun stugeol (calque typeligne / i ent ss) (repeat (setq i (sslength (setq ss (ssget "_X" (list (cons 8 calque)))))) (if (not (assoc 6 (setq ent (entget (ssname ss (setq i (1- i))))))) (entmod (cons (cons 6 typeligne) ent)) ) ) ) Pour tester(stugeol "0" "Type1") Ps: Le type de ligne doit préalablement être chargé dans le dessin. A+ Apprendre => Prendre => Rendre
bryce Posté(e) le 20 août 2012 Posté(e) le 20 août 2012 Bonjour, Voici un petit Lisp que j'ai écrit il y a quelques temps, sans doute en réponse à une précédente demande sur CADxp : (defun c:FORCETP (/ acdoc *error* lay ss obj layobj i counter) ; Attribue à chaque objet sélectionné le type de ligne du calque de l'objet. (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object))) (defun *error* (msg) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (vla-endundomark acdoc) (princ) ) (vla-startundomark acdoc) (if (or (setq ss (cadr (ssgetfirst))) (setq ss (ssget)) ) (progn (setq i 0) (setq counter 0) (repeat (sslength ss) (setq obj (vlax-ename->vla-object (ssname ss i))) (setq layobj (vla-item (vla-get-Layers acdoc) (vla-get-layer obj))) (if (= (vla-get-lock layobj) :vlax-false) (progn (vla-put-linetype obj (vla-get-linetype layobj)) (setq counter (1+ counter)) ) ) (setq i (1+ i)) ) (princ (strcat "\n" (itoa counter) " objets modifiés !")) (princ) ) );if selection (*error* nil) ) (princ "\nCommande à utiliser: FORCETP") (princ) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
stugeol Posté(e) le 20 août 2012 Auteur Posté(e) le 20 août 2012 Je vous remercie,Je vais étudié ça de plus prés...Cordialement. Petit à petit on devient moins petit
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