uisghe Posté(e) le 9 janvier 2006 Posté(e) le 9 janvier 2006 J'ai fait cette commande pour transférer les entités d'un fichiers sur les layers en fonction de la couleur (voir listing à la fin).Mon problème est que celà ne fonctionne pas avec les entités type ellipse, spline. Si qqun a une explication, je suis preneur, merci la commande : (defun c:m2a () (command "tilemode" "1") ; passe en espace objet ; (setq list_layer_base '("Solid Lines" "Centre Lines" "Short Hidden Lines" "Hatching" "Mechanicals" "Phantom Lines" "Thin Lines" "Dimensionning" ) ) (setq nb_layer (length list_layer_base)) (setq domaine "") (setq domaine "MECA") (setq prefix (strcat domaine " - ")) (setq col 1) (repeat nb_layer ;; sélectionne les obgets de couleur col et les affecte à ss1 (setq ss1 (ssget "x" (list (cons 62 col))) ) (if (/= ss1 nil) (progn (print "nb entité") (print (sslength ss1)) (setq lay (strcat prefix (nth (1- col) list_layer_base))) (print lay) ;; ct=compteur pour sélection de l'entité à modifier parmi ss1 (setq ct 0) (if (> (sslength ss1) 0) (progn (repeat (sslength ss1) ;; en=nom interne de l'entité modifiée (setq en (ssname ss1 ct)) ;; Sets ed to the entity data for entity name en (setq ed (entget en)) ;; Changes the layer group in ed. to lay (setq ed (subst (cons 8 lay) (assoc 8 ed) ed)) ;; Changes the color in ed. to "du calque" (256) (setq ed (subst (cons 62 256) (assoc 62 ed) ed)) ;; Changes the line style in ed. to "du calque" (setq ed (subst (cons 6 "DuCalque") (assoc 6 ed) ed)) ;; Modifies entity ss1's layer in the drawing. (entmod ed) (setq ct (1+ ct)) ) ;_ fin (repeat (sslength ss1) ) ;_ fin progn ) ;_ fin (if (> (sslength ss1) 0) ) ;_ fin progn ) ;_ fin (if (/= ss1 nil) (setq col (1+ col)) ) ;_ fin (repeat nb_layer (princ)) ;_ fin m2a
zebulon_ Posté(e) le 9 janvier 2006 Posté(e) le 9 janvier 2006 Bonjour, (setq nb_layer (length list_layer_base)) donc nb_layer vaut toujours 8 et COL varie de 1 à 8 à l'intérieur de la boucle repeat. Si un objet a une couleur plus grande que 8, il n'est jamais sélectionné par le ssget. Mon problème est que celà ne fonctionne pas avec les entités type ellipse, spline. ces entités sont peut-être sur des couleurs > 8 ? Sinon, je ne vois pas. Amicalement Zebulon_ C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
uisghe Posté(e) le 10 janvier 2006 Auteur Posté(e) le 10 janvier 2006 Eh non, justement, j'ai vérifié...
uisghe Posté(e) le 28 janvier 2006 Auteur Posté(e) le 28 janvier 2006 allo, allo, allo (fait l'écho dans ce morne désert) :cool: personne d'autre n'aurait ne serait-ce qu'un petit morceau de piste ? :calim:
bonuscad Posté(e) le 28 janvier 2006 Posté(e) le 28 janvier 2006 J'ai pris la peine d'essayer ton code. Et bien je n'ai rien remarqué, tout a fonctionné, que ce soit pour les ellipses ou les splines. J'ai même essayé de créer des groupes avec celles-ci, ca fonctionne aussi. Ne pouvant reproduire ton cas particulier, je ne peux t'en dire plus. Bonne chance! ;) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
uisghe Posté(e) le 31 janvier 2006 Auteur Posté(e) le 31 janvier 2006 Merci pour cet essai.Peut-être un bug dans Autocad, j'utilise Autocad2004 sous windows2000 cette macro me sert à récupérer des plans issu de Microstation (version 05.07.00.25 windows x86).Les plans sont exportés via la commande export DWG. Peut-être aussi une piste de ce côté là ??? [Edité le 31/1/2006 par uisghe]
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