Aller au contenu

SVP Ligne de Lisp pour un Script ?


Messages recommandés

Posté(e)

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

Posté(e)

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

Posté(e)

Hello

 

1) MERCI

 

2) Donc une simple ligne STL dans le Script et ca roule !?

 

3) Par contre je vais travailler avec ACADISO.LIN

 

Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

Bonjour Druide Breton Maitre Supreme du Lisp/VLisp

 

Votre merveilleuse Routine VLisp me berce doucement et efficacement !

 

Humblement, Devotement et Decapodiquement, lecrabe "Tourteau"

Autodesk Expert Elite Team

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é