zizou_elec Posté(e) le 17 décembre 2008 Partager Posté(e) le 17 décembre 2008 Bonjour à tous, J'ai un petit souci sur Autocad 2006 :dans le cadre de mon boulot, je dois traiter des plans émanant de plusieurs entités.Je créé ensuite un plan sur la base d'un calque=un plan recu.Le problème qui se pose est que je souhaite conserver les types de lignes des différents calques des plans d'origine mais le tout sur un seul calque avec une seul couleur!Quelqu'un aurait une idée ( un lisp?) pour effectuer cette opération? Merci d'avance et bonnes fêtes de fin d'année à tous et à toutes. Lien vers le commentaire Partager sur d’autres sites More sharing options...
x_all Posté(e) le 17 décembre 2008 Partager Posté(e) le 17 décembre 2008 une solution...travailler avec des xref (tu insères ton plan dans un calque spécifique) tu passe par un de ces lisp pour le mètre tout gris (ou la couleur de ton choix) les avantages: tu conserve les calques et les types de trait de l'archi, tu peu geler quand même tout d'un coup (si tu as plusieurs niveaux sur un plan par exemple)si ya une modif sur le plan de ref, c'est plus facile à diffuser.. quelques trucs sur autocad Lien vers le commentaire Partager sur d’autres sites More sharing options...
Serge Posté(e) le 18 décembre 2008 Partager Posté(e) le 18 décembre 2008 zizou_elec Si j'ai bien compris, les objets sont initialement de type de ligne ByLayer (DuCalque) et en les fusionnant sur un calque, tu perd la propriété d'origine (il semble que la couleur ne pose pas problème puisque tu dois avoir choisi un gris pale). Il te faudra modifier le fichier source d'abord grâce à cette routine qui forcera les propriétés. Tu pourras l'insérer par la suite. ;;; c:BylayerToByEntityProps ;;; Par Serge Camiré, 2008-12-18 (defun c:BylayerToByEntityProps ( / forceTypeLigne forceCouleur pref prop Props ) ;; Force les propriétés (couleur et type de ligne) à être par objet plutôt que par calque. (initget "TypeLigne Couleur 2") (setq pref (getkword "\nForcer les propriétés suivante [TypeLigne/Couleur/les 2] : ")) (setq forceTypeLigne (/= pref "Couleur")) (setq forceCouleur (wcmatch pref "Couleur,2")) (setq Props (GetLayerProperties)) (vlax-for ModelSpaceObject (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) (setq prop (assoc (vla-get-layer ModelSpaceObject) Props)) (if (and forceCouleur (= 256 (vla-get-Color ModelSpaceObject))) (vla-put-Color ModelSpaceObject (nth 1 prop))) (if (and forceTypeLigne (= "BYLAYER" (vla-get-Linetype ModelSpaceObject))) (vla-put-Linetype ModelSpaceObject (nth 2 prop))) ) (princ) ) (defun GetLayerProperties ( / name color linetype prop return ) ;; Retourne (list (list nomclaque1 couleur1 typeligne1) (list nomclaque2 couleur2 typeligne2)) ...) ;; de tout le dessin. (setq return nil) (vlax-for layer (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))) (setq name (vla-get-name layer)) (setq color (vla-get-Color layer)) (setq linetype (vla-get-Linetype layer)) (setq prop (list (list name color linetype))) (setq return (append return prop)) ) return ) (princ "\nTapez BylayerToByEntityProps pour forcer les propriétés.") (princ) Serge Lien vers le commentaire Partager sur d’autres sites More sharing options...
zizou_elec Posté(e) le 18 décembre 2008 Auteur Partager Posté(e) le 18 décembre 2008 Bonjour et merci pour vos reponse rapide....l'idée de Serge corrspondrait mieux à mes attentes!!(merci quand meme x_all pour la reponse!)Par contre comment s'appelle ce lisp?comment je le lance?Merci d'avance Serge! Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 18 décembre 2008 Partager Posté(e) le 18 décembre 2008 Bonjour à toutes et tous, Par contre comment s'appelle ce lisp? BylayerToByEntityProps comment je le lance? Rappel commentaires de (gile) => Comme la demande est récurente et que je commence à me lasser de répéter...J'ouvre donc un nouveau sujet qui servira, j'espère, aussi bien aux utilisateurs novices de routines qu'aux débutants qui se lancent dans l'aventure de la programmation en LISP. 1 Pour charger une routine LISP 1.1 Sans enregistrer de fichier C'est la méthode à utiliser pour les expressions simple et les fonctions "lambda" : ((lambda ...)).Elle peut aussi être utilisée pour les "defun" : (defun ...).Il suffit de copier le code (rien que le code, tout le code) et de le coller sur la ligne de commande et de valider (Entrée ou Espace)Dans le cas d'expression simple ou de fonction "lambda", l'expression est immédiatement évaluée, s'il s'agit d'un "defun", il faut ensuite lancer la commande (voir "2 Pour lancer une commande LISP", plus bas) 1.2 Enregistrer un fichier .lsp Après avoir copié le code (rien que le code, tout le code), le coller dans le bloc-note (ne pas utiliser d'éditeur de texte sofistiqué -type Word- qui rajoute des caractères de mise en pages).Enregistrer le fichier, peu importe le nom, avec l'extension .lsp (par exemple : Toto.lsp). Si le LISP est amené à resservir, il peut être judicieux de l'enregistrer dans un dossier du chemin de recherche des fichiers de support (menu Outils >> Options ... onglet Fichiers). 1.3 Charger dans le dessin courant 1.3.1 Commande APPLOAD Taper APPLOAD à la ligne de commande ou menu Outils >> AutoLISP >> Charger une application.Charger le LISP depuis le dossier où il a été enregistré. 1.3.2 Cliquer/déposer Depuis l'explorateur Windows, sélectionner le fichier et le déposer dans la fenêtre d'AutoCAD. 1.3.3 Depuis la ligne de commande Utiliser la fonction LISP load :Si le fichier est enregistré dans un dossier du chemin de recherche, entrer l'expression LISP :(load "Toto. lsp") ou (load "Toto")Sinon, spécifier le chemin complet (dans ce cas les anti-slashes doivent être remplacés par des slashes ou des doubles anti-slashes) exemple :(load "C:/MesLisp/toto.sp") ou (load "C:\\MesLisp\\toto.sp") 1.4 Charger automatiquement un fichier .lsp Si le LISP est amené à être utilisé régulièrement, il peut être intéressant qu'il soit automatiquement chargé au démarrage d'AutoCAD et/ou dans tous les dessins. 1.4.1 Commande APPLOAD Dans la boite dialogue de la commande APPLOAD, dans la case Au démarrage (valise), cliquer sur Contenu et ajouter le fichier. 1.4.2 Fichiers de chargement automatique Les fichiers AutoCAD.LSP, ACADDOC.LSP (à crééer dans un dossier du chemin de recherche, s'ils n'existent pas) et les fichier MNL (associés aux fichier de menu MNS ou CUI de même nom) sont des fichiers contenant des routines et expressions LISP qui sont chargées automatiquement au démarrage (acad.lsp) ou dans chaque dessin (acaddoc.lsp et mnl).Voir dans l'aide Guide de personnalisation >> Introduction aux interfaces de programmation >> AutoLISP et VisualLISP >> Chargement et exécution automatiques des routines AutoLISP.NOTA : ne pas modifier les fichiers ACAD200*.LSP et ACAD200*DOC.LSP. 2 Pour lancer une commande LISP On définit une commande en LISP en faisant précéder le nom de la commande/fonction par c: au début de la routine, juste après (defun , exemple :(defun c:toto (...))Dans ce cas il suffit de taper à la ligne de commande : toto et de valider. 3 Éditeur VisualLISP AutoCAD intègre un éditeur de programmes LISP (commande VLIDE ou VLISP ou menu Outils >> AutoLISP >> Editeur VisualLISP).Dans celui-ci, il est aussi possible, entre autre choses, de coller, écrire, modifier, enrgistrer, charger, évaluer des routines ou des expressions LISP, mais son utilisation (que je recommande fortement) ferait l'objet d'un sujet entier (voir ici). 4 Boites de dialogue (DCL) Certains LISP fonctionnent avec une (ou des) boite(s) de dialogue. Le fichier LISP est alors accompagné d'un (ou de plusieurs) fichier(s) .DCL. Ces fichiers sont appelés par le LISP pour ouvrir la boite de dialogue. Pour qu'AutoCAD les trouvent ils doivent être enregistrés sous le nom qui leur a été donné, avec l'extension .dcl, dans un répertoire du chemin de recherche des fichiers de support (menu Outils >> Options... >> onglet Fichiers >> Chemin de recherche des fichiers de support). Il est préférable, à mon avis, de créer son propre répertoire de fichiers LISP et DCL et d'ajouter ce chemin à la liste. 5 Les fichiers VLX Les fichier VLX sont des fichiers compilés (et cryptés) qui peuvent être la compilation de plusieurs fichiers LISP et DCL. Ils se chargent de la même manière que les fichiers LISP et permettent d'éviter d'avoir à s'occuper des fichiers DCL. En espérant que je n'en ai pas trop oublié, si c'est le cas, faites le savoir...[Edité le 6/4/2007 par (gile)][Edité le 16/6/2007 par (gile)] [Edité le 28/12/2007 par (gile)] ____________________De chacun selon ses moyens,À chacun selon ses besoins. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
zizou_elec Posté(e) le 19 décembre 2008 Auteur Partager Posté(e) le 19 décembre 2008 Merci....Par contre , la petite galère que j'ai, c'est juste que je ne sais pas trop comment l'utiliser....A votre bon cœur messieurs dames! Lien vers le commentaire Partager sur d’autres sites More sharing options...
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