Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 20/01/2025 dans toutes les zones

  1. Bonjour @kfran56 Voici un lien vers un webinaire dédié à cette question. C'est ICI Amicalement
    1 point
  2. Bonsoir à toutes et tous, Oui, il faut que ton point de référence du projet REVIT soit défini depuis ce même point de référence défini sur ton .dwg (dans ton cas en CC46). Quelques ressources ICI
    1 point
  3. 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 (tout le code et les commentaires précédés de point virgule), 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). Depuis AutoCAD 2014, il faut aussi ajouter le chemin du répertoire contenant les fichiers LISP dans les "Emplacements approuvés" (menu Outils >> Options ... >> onglet Fichiers). Si le chemin du dossier se termine par "\...", tous ses sous-dossiers sont également approuvés. 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.lsp") ou (load "C:\\MesLisp\\toto.lsp") 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 😄 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)]
    1 point
  4. Salut x_all, Ça devrait tourner sous 2006 sans problème, j'ai effectivement oublié de glisser un (vl-load-com) en début de routine, mais il me semble que ceci n'est plus nécéssaire depuis les versions 2004. Telle quelle la routine fonctionne sur tous les calques (actif/inactif, gelé/dégelé, vérouillé/dévérouillé) si tu veux écarter certains calques, il faut remplacer : (ssget "_X" '((0 . "LWPOLYLINE"))) par : (ssget "_A" '((0 . "LWPOLYLINE"))), et les calques gelés ne seront pas traités. Quelque chose comme ça ? ((lambda (/ ss tot nb n long obj lst lay l_lay) (vl-load-com) (if (setq ss (ssget "_X" '((0 . "LWPOLYLINE")))) (progn (setq nb (sslength ss) n 0 tot 0.0) (princ (strcat "\n\nLe dessin contient : " (itoa nb) " polylignes") ) (repeat nb (setq obj (vlax-ename->vla-object (ssname ss n)) long (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj) ) tot (+ tot long) lay (vla-get-Layer obj) ) (princ (strcat "\nP" (itoa (setq n (1+ n))) " = " (rtos long) "\tCalque : " lay ) ) (if (setq l_lay (assoc lay lst)) (setq lst (subst (cons lay (+ long (cdr l_lay))) l_lay lst)) (setq lst (cons (cons lay long) lst)) ) ) (mapcar '(lambda (x) (princ (strcat "\nLongueur totale sur le calque " (car x) " : " (rtos (cdr x)) ) ) ) lst ) (princ (strcat "\nLongueur totale dans le dessin = " (rtos tot))) (textscr) ) (princ "\nLe dessin ne contient pas de polylignes.") ) (princ) ) ) [Edité le 1/10/2006 par (gile)]
    1 point
×
×
  • 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é