Aller au contenu

SVP Ligne de Lisp pour un Script ?


lecrabe

Messages recommandés

Hello les Pros du Lisp

 

En fait je desire faire passer un Script sur mes DWGs

 

Et j'aurais besoin de re-affecter les Types de Ligne des calques qui sont en CONTINU sur CONTINUOUS !

 

Probleme dans un DWG, je peux avoir ZERO calque concerne ou 1 ou N calque(s) concerne(s)

 

SVP Comment faire cela dans un Script en 1/2 ligne(s) de Lisp ??

 

Ce qui me permettrait aussi de transformer (Si Presents !?)

HIDDEN --> CACHE

CENTER --> CENTRE

PHANTOM --> FANTOME

etc

 

Merci d'avance, Bye, lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Tu as juste le lisp à charger

 

(defun c:stl(/ doc lay new fichier liste)



;;; ===========================================================================
;;; Paramètres à définir par l'utilisateur

; La liste des types de lignes à remplacer
 (setq liste '(	("CONTINU" "CONTINUOUS")
		("HIDDEN"  "CACHE")
		("CENTER"  "CENTRE")
		("PHANTOM" "FANTOME")
      )
 )

; Le fichier de lignes à charger --> acad.lin ou acadiso.lin
 (setq fichier "acad.lin")

;;; Fin des paramètres à définir par l'utilisateur
;;; ===========================================================================



 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (vlax-for lay (vla-get-layers doc)
   (and (setq new (assoc (vla-get-linetype lay) liste))
     (progn
(or (tblsearch "ltype" (cadr new))
  (vla-load (vla-get-linetypes doc) (cadr new) (findfile fichier))
)
(vla-put-linetype lay (cadr new))
     )
   )
 )
 (vla-endundomark doc)
 (princ)
)

(c:stl)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

1) De rien

 

2) Même pas, car tu as à la fin du lisp (c:stl), ce qui veut dire qu'il se lance dès qu'il est chargé.

 

3) C'est pour cela que j'ai déclaré la variable fichier. C'est au choix.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Hello Patrick

 

YES Merci !

 

Au fait j'ai fais une Micro-Modif :

("CONTINU" "CONTINUOUS")

("Continu" "Continuous")

 

 

Et SVP quel serait la petite routine Lisp/VLisp (MEME principe)

qui substituerait a l'interieur des Blocs et Blocs imbriques (N fois)

("CONTINU" "CONTINUOUS")

("Continu" "Continuous")

 

Toujours avec une variable LISTE a parametrer ... Et AutoCAD/ACADISO.LIN ...

 

A executer manuellement ET AUSSI a faire tourner dans un Script

 

Merci d'avance, Bye, lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Le lisp modifié

 

(defun c:stl(/ blo doc ent lay changer fichier liste)



;;; ===========================================================================
;;; Paramètres à définir par l'utilisateur

; La liste des types de lignes à remplacer
 (setq liste '(	("CONTINU" "CONTINUOUS")
		("HIDDEN"  "CACHE")
		("CENTER"  "CENTRE")
		("PHANTOM" "FANTOME")
      )
 )

; Le fichier de lignes à charger --> acad.lin ou acadiso.lin
 (setq fichier "acad.lin")

;;; Fin des paramètres à définir par l'utilisateur
;;; ===========================================================================




 (defun changer(obj / new)
   (and (setq new (assoc (strcase (vla-get-linetype obj)) liste))
     (progn
(or (tblsearch "ltype" (cadr new))
  (vla-load (vla-get-linetypes doc) (cadr new) (findfile fichier))
)
(vla-put-linetype obj (cadr new))
     )
   )
 )

 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (foreach ltp liste
 )
 (vlax-for lay (vla-get-layers doc)
   (changer lay)
 )
 (vlax-for blo (vla-get-blocks doc)
   (vlax-for ent blo
     (changer ent)
   )
 )
 (vla-endundomark doc)
 (princ)
)

(c:stl)

 

@+

 

ps : Le lisp n'est plus sensible à la casse, mais il faut que les types de lignes recherchées soient en majuscules dans la liste.

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Le miserable Decapode Ventrachoux se prosterne devant le Druide Breton Maitre Supreme du Lisp/VLisp !

 

MAIS il y a un Bug avec la fonction CHANGER !

MAIS MAIS je suis un Nullissime Ventrachoux meme pas capable

de faire correctement un Copier / Coller !!

 

Bonne Continuation, Bye, lecrabe "Tourteau"

 

PS: Le Tourteau aime la fraicheur ...

Autodesk Expert Elite Team

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é