Aller au contenu

Guide du script


Messages recommandés

Bonjour à tous

 

Je cherche à me mettre sérieusement au script combiné avec SuperAutoScript.

 

Mais je bloque et je n'ai pas trouvé de doc sur le Net (peut-être pas cherché assez, ou mal)

 

l'opération que je cherche à faire est à ouvrir un dessin, supprimer les hachures qu'il contient, l'enregistrer et le fermer

 

d'où les questions :

 

1- Quelqu'un peut-il me filer un rapide coup de main sur cette manip' précisément ?

 

2- Existe-t-il un guide (PDF, page internet, etc.) qui apprendrait les rudiments du script ? Même si je connais le principe de succession d'actions de base d'Acad, je n'arrive pas à mettre en application.

 

Merci

 

Sapin

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

supprimer les hachures qu'il contient

 

En script, le problème est là !

Il faut savoir qu'un script (contrairement à une macro) ne permet pas de pause pour une saisie utilisateur (à moins que ce soit la dernière action de celui-ci).

 

Donc sur une version LT, impossible à réaliser (Qselect, pour un filtrage, ouvrant une boite de dialogue qui te fera avorter le script).

Sur une version pleine, il reste la possibilité d'introduire une ligne lisp du genre (ssget "_X" '((0 . "HATCH"))) pour pouvoir faire la sélection filtrée, ou utiliser une boucle (while) avec la variable "CMDACTIVE" pour une sélection utilisateur.

 

les rudiments du script ?

Un script n'est qu'une exécution enchainée de commandes et ses options comme tu pourrais le faire manuellement au clavier dans ton dessin sans possibilité de faire de sélection d'objet ou de saisie de valeur (sauf en introduisant des expressions lisp ou parfois aussi diesel).

 

Alors version pleine ou LT ?

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

J'ai repris le code de (gile) sse - sélection spéciale d'entités et l'ai adapté pour faire ça :

 

;; Sélection par type d'entité
(defun c:ssh (/ ss)
 (and
   (or
     (and
(setq ss (cadr (ssgetfirst)))
(= 1 (sslength ss))
(setq ent (ssname ss 0))
     )
     (and
(sssetfirst nil nil)
[surligneur](ssget "_X" '((0 . "HATCH"))) [/surligneur] 
     )
   )
   (sssetfirst nil (ssget "_X" (list (assoc 0 (entget ent)))))
 )
 (princ)
) 

 

ca convient?

 

ensuite, vaut-il mieux intégrer la commande effacer dans le lisp ou bien dans un script ?

Lien vers le commentaire
Partager sur d’autres sites

En supposant qu'il n'y a pas de calques verrouillés, un exemple de script effaçant dans l'espace courant:

 

_.open

[surligneur]"C:\\Chemin de ton fichier\\nom du dessin.dwg"[/surligneur]

_.erase

(ssget "_X" (list '(0 . "HATCH") (cons 410 (getvar "CTAB"))))

[surligneur]ligne vierge[/surligneur]

_.close

_yes

 

NB: la ligne vierge / vide correspond à une "Entrée" pour sortir de la boucle "Choix des objets:" lors de la sélection.

(enlever "ligne vierge" bien sûr...) ;)

 

Après pour faire un traitement par lot avec autoscript, je te laisse adapter.

Pour ma part j'avais donner des exemples pour un traitement par dossier (faire une recherche dans le forum avec "make_script")

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

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é