Jiro Posté(e) le 10 mars 2022 Posté(e) le 10 mars 2022 Bonjour, Je suis en train de réaliser un lisp me permettant de changer l'échelle des entités de mon dessin suivant l'échelle où j’imprime mon plan. Pour ce qui est des textes et polylignes, j'ai réussi à le faire comme je voulais. En revanche, je n'arrive pas à faire ce que je veux pour les hachures. Par défaut mon plan est au 1/1000ème, les hachures ont une échelle de "8". Je veux passer mon plan au 1/500ème et donc mettre les hachures avec une échelle de "4". Le programme effectue bien la modification mais seulement pour une hachure, alors que le dessin en compte plusieurs dizaines. Citation (DEFUN C:TEST (/ JS) (SETQ JS (SSGET "X" (LIST (CONS 0 "HATCH")))) (COMMAND "-EDITHACH" JS "PR" "" "4" "" ) (princ) ) Si vous avez une idée du problème, je suis preneur. Merci d'avance.
Luna Posté(e) le 10 mars 2022 Posté(e) le 10 mars 2022 Coucou, Il me semble qu'il faut mettre des guillemets vides "" après l'argument correspondant au jeu de sélection afin de valider la sélection (car il est possible de faire plusieurs jeu de sélection durant les commandes). De plus, je te conseille d'ajouter un underscore devant la méthode X de ton (ssget) ("_X") pour permettre d'utiliser les méthodes internationales 😉 Donc un truc du genre (pas testé) : (DEFUN C:TEST (/ JS) (SETQ JS (SSGET "_X" (LIST (CONS 0 "HATCH")))) (COMMAND "-EDITHACH" JS "" "PR" "" "4" "" ) (princ) ) Bisous, Luna
Jiro Posté(e) le 11 mars 2022 Auteur Posté(e) le 11 mars 2022 Bonjour, Merci pour la réponse. Malheureusement, cela ne fonctionne pas, j'ai toujours la modification d'une seule hachure. Les guillemets valident une commande, du coup, j'ai un petit message d'erreur. Citation Commande: TEST -EDITHACH Sélectionnez un objet de hachures: Entrez l'option de hachures [Dissocier/stYle/Propriétés/ORdre de tracé/AJouter contours/Supprimer contours/recréer COntour/ASsocier/séparer Hachures/oriGine/ANnotatif/COUleur de hachures/CAlque/Transparence] <Propriétés>: Entrez un nom de motif ou [?/Solide/Utilisateur/Gradient] <ANSI31>: PR Nom du motif de hachures inconnu. Entrez un nom de motif ou [?/Solide/Utilisateur/Gradient] <ANSI31>: Spécifiez l'échelle du motif <8.0000>: 4 Spécifiez l'angle du motif <382.0906g>:
(gile) Posté(e) le 11 mars 2022 Posté(e) le 11 mars 2022 Salut, La commande EDITHACH (_HATCHEDIT) appelée en LISP ne traite qu'une hachure à la fois, il faut donc parcourir le jeu de sélection pour traiter chaque hachure. (defun c:test (/ js i) (if (setq js (ssget "_X" (list (cons 0 "HATCH")))) (progn (repeat (setq i (sslength js)) (command "_hatchedit" (ssname js (setq i (1- i))) "" "_properties" "" 4 "") ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 11 mars 2022 Posté(e) le 11 mars 2022 Hello @(gile) 1) Merci pour la routine ! 2) SVP puis je te (ou un autre Pro du Lisp) demander une version améliorée ?! 21) Question - Nouveau facteur multiplication de l'échelle des hachures ? Défaut = 2.0 - Valeur > 0.0 Ce sera souvent: 2/4/8/etc/0.5/0.25/etc 22) Récupération de l'échelle de chaque hachure sélectionnée... 23) Nouvelle échelle = ancienne échelle * facteur multiplication 24) MAJ hachure - Par ENTMOD sans doute ?! 25) On boucle sur la hachure suivante... Vois tu ce que je veux dire ? Merci, Bye, lecrabe Autodesk Expert Elite Team
(gile) Posté(e) le 12 mars 2022 Posté(e) le 12 mars 2022 (defun c:scalehatch (/ ss scl i hach) (prompt "\nSélectionnez les hachures (ou Entrée pour toutes).") (if (and (or (setq ss (ssget '((0 . "HATCH") (2 . "~SOLID")))) (setq ss (ssget "_X" '((0 . "HATCH") (2 . "~SOLID")))) ) (progn (initget 6) (or (setq scl (getreal "\nEntrez le factuer d'achelle <2.0>: ")) (setq scl 2.0) ) ) ) (repeat (setq i (sslength ss)) (setq hach (ssname ss (setq i (1- i)))) (setpropertyvalue hach "PatternScale" (* scl (getpropertyvalue hach "PatternScale"))) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 12 mars 2022 Posté(e) le 12 mars 2022 Hello @(gile) MERCI je teste des que possible ! Bon WE, La Sante, Bye, lecrabe Autodesk Expert Elite Team
lecrabe Posté(e) le 14 mars 2022 Posté(e) le 14 mars 2022 Hello @(gile) MERCI c TOP ! Bonne semaine, La Sante, Bye, lecrabe Autodesk Expert Elite Team
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