Aller au contenu

Jeu de selection hachures et changement d'échelle


Jiro

Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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>:

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

(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

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité