Gilles1 Posté(e) le 15 décembre 2010 Posté(e) le 15 décembre 2010 Bonjour à toutes et à tous. J'ai glané je ne sais plus où ce lisp (et j'en remercie encore son auteur) qui me permet de tracer une croix dans un cercle en sélectionnant celui ci, très pratique pour ce que je fais. (defun c:croix (/ sel i obj ent) ;; Trace une croix dans le cercle (defun trc_cercle (obj) (setq d (/ (cdr (assoc '40 obj)) (sqrt 2.0)) ct (cdr (assoc '10 obj))) (entmake (list '(0 . "LINE") (cons '10 (mapcar '+ ct (list d d 0))) (cons '11 (mapcar '- ct (list d d 0))) ) ) (entmake (list '(0 . "LINE") (cons '10 (mapcar '+ ct (list d (* -1 d) 0))) (cons '11 (mapcar '- ct (list d (* -1 d) 0))) ) ) ) ;; Trace une croix dans un rectangle (defun trc_rect (obj) (setq obj (vl-remove-if-not '(lambda (x) (= (car x) 10)) obj)) (entmake (list '(0 . "LINE") (nth 0 obj) (cons '11 (cdr (nth 2 obj))) ) ) (entmake (list '(0 . "LINE") (nth 1 obj) (cons '11 (cdr (nth 3 obj))) ) ) ) ;; Fonction principale (setq i -1 sel (ssget '((-4 . " (0 . "CIRCLE") (0 . "LWPOLYLINE") (-4 . "OR>") ) ) ) (if sel (while (setq i (1+ i) obj (ssname sel i)) (setq obj (entget obj) ent (cdr (assoc '0 obj))) (cond ((= ent "CIRCLE") (trc_cercle obj)) ((= ent "LWPOLYLINE") (trc_rect obj)) ) ) ) (princ) ) Je souhaiterais que vous m'aidiez à le modifier pour qu'au lieu de tracer une croix dans un cercle désigné, il remplisse le cercle en vert. Exemple: http://img35.imageshack.us/img35/4490/exempled.gif Merci d'avance à ceux qui voudrons bien se pencher sur ma requête.
Fraid Posté(e) le 15 décembre 2010 Posté(e) le 15 décembre 2010 Bonjour, Normalement pas trop besoin de lisp pour faire cela Mais si tu est faché avec l'outil hachure un ptit truc (defun c:vert (/ SelCircle i NamCircl) (setq SelCircle (ssget (list (cons 0 "CIRCLE"))) i 0) (if SelCircle (repeat (sslength SelCircle) (setq NamCircl (ssname SelCircle i)) (command "_-hatch" "s" NamCircl "p" "s" "" "") (command "_chprop" (entlast) "" "co" "vert" "") (setq i (1+ i)) ) ) (princ) ) https://github.com/Fraiddd
didier Posté(e) le 16 décembre 2010 Posté(e) le 16 décembre 2010 coucou il y a remplissage et remplissage peut être que Gilles1 souhaite mettre un anneau pour bénéficier de l'accrochage CENTRE si c'est le cas, c'est encore une question de vocabulaire !et si c'est vraiment le cas, qu'il nous le dise ... amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Gilles1 Posté(e) le 16 décembre 2010 Auteur Posté(e) le 16 décembre 2010 Bonjour à toutes et à tous. Merci Fraid pour ce code qui fonctionne, mais il utilise le type de hachures prédéfini.Est-ce possible de forcer dans le code l'utilisation du motif "solid" ?Non, je ne suis pas faché avec l'outil hachures, mais moins j'utilise de commandes pour faire un truc, mieux je me porte :cool: Merci Didier pour ta réponse, je ne pense pas que l'accrochage au centre soit utile pour cette utilisation. Cordialement, Gilles
Fraid Posté(e) le 16 décembre 2010 Posté(e) le 16 décembre 2010 Bonjour, C'est le motif Solide qui est utilisé (command "_-hatch" "s" NamCircl "p" [surligneur] "s" [/surligneur] "" "") https://github.com/Fraiddd
Gilles1 Posté(e) le 16 décembre 2010 Auteur Posté(e) le 16 décembre 2010 OK, d'accord. Sur mon acad2011, je suis obligé d'aller changer une première fois la valeur pour mettre en Solid, après, le code fonctionne. Merci pour ta solution, Fraid ;)
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