nicolas2 Posté(e) le 23 février 2009 Posté(e) le 23 février 2009 Bonjour,j'osais pas la poster... :exclam: (defun C:essai (/ P1) (setq P1 (getpoint "pointez le cercle: ")) (command "scu" "déplacer" P1 "") (command "zoom" "et") (princ) ) Voila, cette routine recentre le SCU sur le cercle et fait un zoom étendu. Ma question: je voudrais que le scu aille sur le centre du cercle (sans "pointez le centre du cercle") mais toujours en pointant le cercle, j'avais pensé à ça. (command "scu" "déplacer" "centre" "cercle") Mais bon.... Merci pour votre aide
Matt666 Posté(e) le 23 février 2009 Posté(e) le 23 février 2009 Salut ! Merci d'avoir osé ! ;) Si tu regardes ici, tu verras que le code DXF correspondant au centre du cercle est le 10.Pour retrouver les codes dxf d'une entité, il faut passer par un entget. Un entget sur quoi ? Une entité. Pour sélectionner une entité, faut passer par un (car (entsel msg)). Ce qui donne un truc du style :(setq ent (car (entsel "\nSélectionner le cercle : "))) ensuite tu n'as plus qu'à retourner le code 10 de l'entité, soit :(setq p1 (cdr (assoc 10 (entget ent)))) Tout ça pour te dire comment retrouver le centre d'un cercle. Cependant tu n'as pas du tout besoin de ça pour zoomer sur le centre d'un cercle ! La commande zoom contient une option "objet". Tu n'as qu'à sélectionner l'entité sur laquelle zoomer, et tout se fait tout seul !! [Edité le 23/2/2009 par Matt666] "Chacun compte pour un, et nul ne compte pour plus d'un."
nicolas2 Posté(e) le 23 février 2009 Auteur Posté(e) le 23 février 2009 Merci Matt666.Voila ce que j'ai dans ma routine ....... (while (null (setq ent (entsel "\nDésigner un cercle type: ")))) (setq dxf_ent (entget (car ent))) ....... j'ai essayé plusieurs trucs mais si j'insère la définition de P1 pour ensuite recaler mon SCU, la routine plante ?! ....... (while (null (setq ent (entsel "\nDésigner un cercle type: ")))) (setq dxf_ent (entget (car ent))) (setq p1 (cdr (assoc 10 (entget ent)))) (command "scu" "déplacer" P1 "") ....... Merci pour ton aide
nicolas2 Posté(e) le 24 février 2009 Auteur Posté(e) le 24 février 2009 Quelqu'un ou quelqu'une pour m'aiguiller... ;)
bonuscad Posté(e) le 24 février 2009 Posté(e) le 24 février 2009 Salut, (setq dxf_ent (entget (car ent)))(setq p1 (cdr (assoc 10 (entget ent)))) Soit tu te sert du dxf_ent pour extraire ton code 10: (setq p1 (cdr (assoc 10 dxf_ent))) Soit tu supprime ta ligne dxf_ent et tu fais: (setq p1 (cdr (assoc 10 (entget (car ent))))) (entget ent) ne fonctionne pas, (entget (car ent)) fonctionne (entsel) retourne une liste constitué du nom de l'entité et du point de sélection, c'est pour cela que l'on prend le 1er élément (car) pour pouvoir utiliser (entget) qui réclame un nom d'entité et non une liste. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
nicolas2 Posté(e) le 24 février 2009 Auteur Posté(e) le 24 février 2009 Merci Bonuscad pour ta réponse !J'ai gardé dxf_ent car la routine y fait référence tout au long de son déroulement .
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