dyabs Posté(e) le 29 septembre 2006 Posté(e) le 29 septembre 2006 Salut à tous, je cherche un lisp qui permette de créer un point graphique au point d'insertion de blocs. Il existe un lisp qui met des points au centre des cercles (http://www.cadxp.com/sujetXForum-11123.htm) mais je n'arrive pas à le modifier! Ca serait sympa qu'un crac du lisp y jette un oeil. Merci d'avance.
Tramber Posté(e) le 29 septembre 2006 Posté(e) le 29 septembre 2006 Ca ne marche pas si tu remplaces :(cons 0 "CIRCLE")par :(cons 0 "INSERT")? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Bred Posté(e) le 29 septembre 2006 Posté(e) le 29 septembre 2006 Salut,un petit truc rapide : (defun c:ptb (/ Q sel x ent_b) (initget 0 "T") (setq Q (getkword "\n Tous les Blocs < T > ou < Sélec >: ")) (if (= Q nil) (setq sel (ssget '((0 . "INSERT" )))) (setq sel (ssget "_X" '((0 . "INSERT" )))) ) (setq x 0) (if sel (progn (repeat (sslength sel) (setq ent_b (ssname sel x)) (command "_point" (trans (cdr (assoc 10 (entget ent_b))) 0 1)) (setq x (+ x 1)) ) ) ) (princ) ) ... attention, les points ne sont insérer qu'à l'insert des blocs imbriqués, pas à tout les point d'insert des blocs dans le bloc imbriqué !... Si ça te va comme ça, tant mieux (parceque le coup des blocs imbriqués, (gile) m'a épuisé (amicalement) avec !!! et je n'en suis toujour pas revenu !) -------------j'éditegrillé par Tramber ! je suis encore trop lent ![Edité le 29/9/2006 par Bred][Edité le 29/9/2006 par Bred] [Edité le 29/9/2006 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
dyabs Posté(e) le 29 septembre 2006 Auteur Posté(e) le 29 septembre 2006 :laugh: Exactly ce que je voulais faireLes deux soluces fonctionnent nickel .... Respect Bred & Tramber Encore merci. Faudrait que je prenne quelques cours de lisp car ya pas photos çà aide!!!Et j'ai hate de pouvoir rendre la monnaie en aidant un autre ACADIEN... :yltype:
Bred Posté(e) le 29 septembre 2006 Posté(e) le 29 septembre 2006 Re'Par respect pour ceux qui m'ont appris ici à "lisper", j'ai éditer le lisp en réponse 2 afin que les points s'insert quelque soit le SCU (la fonction "trans"). J'ai rajouté aussi la possibilité de faire un choix entre tout les blocs (T) de la collection ou faire une sélection.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 29 septembre 2006 Posté(e) le 29 septembre 2006 Salut Bred, Juste une petite remarque, le point d'insertion d'une référence de bloc n'est pas défini dans le SCG, mais dans le SCO.Je pense qu'il vaut mieux faire : (command "_point" (trans (cdr (assoc 10 (entget ent_b))) ent_b 1)) Tu peux voir ce sujet. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 29 septembre 2006 Posté(e) le 29 septembre 2006 Raaaaa... je suis allé encore trop vite....C'est la logique même que le point d'insertion dans l'entité d'un bloc soit dans le SCO.....encore une fois merci, (gile).... La réponse 2 avec correction proposé par (gile) : (defun c:ptb (/ Q sel x ent_b) (initget 0 "T") (setq Q (getkword "\n Tous les Blocs < T > ou < Sélec >: ")) (if (= Q nil) (setq sel (ssget '((0 . "INSERT" )))) (setq sel (ssget "_X" '((0 . "INSERT" )))) ) (setq x 0) (if sel (progn (repeat (sslength sel) (setq ent_b (ssname sel x)) (command "_point" (trans (cdr (assoc 10 (entget ent_b)))[b] ent_b 1[/b] )) (setq x (+ x 1)) ) ) ) (princ) ) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
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