Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'lisp'.

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Fonctionnement de ce site
    • Nouvelle règle pour les invités : plus d'écriture possible sans inscription
    • CADxp, comment ça marche?
    • CADxp, vos souhaits
    • Forum test
  • Emploi
    • Emploi, monde du travail
  • AutoCAD
    • AutoCAD 3D
    • AutoCAD 2020-2024
    • AutoCAD LT 2024
    • AutoCAD LT 2020-2023
    • AutoCAD 2019
    • AutoCAD LT 2019
    • AutoCAD 2018
    • AutoCAD LT 2018
    • AutoCAD 2017
    • AutoCAD LT 2017
    • AutoCAD avant 2017
    • AutoCAD LT avant 2017
    • Tutoriaux AutoCAD
    • AutoCAD, liste de souhaits
  • Autres logiciels de CAO
    • Microstation
    • IntelliPlus, IntelliCAD, CadIdesk
    • ZWCAD
  • Architecture, Bâtiment
    • Revit
    • AutoCAD Architecture
    • AutoCAD MEP
    • BIM
  • Mécanique
    • Inventor
    • SolidWorks
    • Creo (ex. Pro/Engineer)
    • Catia
  • SIG, Génie civil, Cartographie, VRD
    • Autodesk Map
    • VRD
    • Covadis
    • Infraworks 360
    • Mensura
    • AutoCAD Civil
    • Autopiste
    • SIG internet
  • Imagerie, animation, PAO, modélisation 3D
    • 3DSMAX
    • Création et retouche d'images
    • Sketchup
    • Autres logiciels d'infographie
    • Lumion 3D
  • Programmation
    • LISP et Visual LISP
    • VBA et VB
    • Personnalisation, macros, DIESEL
    • ObjectARX/DBX, C++, .NET, RealDWG
    • Programmer en s'amusant
    • Suggestions de développements
  • Trucs et astuces
    • AutoCAD trucs et astuces
    • Windows trucs et astuces
  • Matériel CAO
    • Ordinateurs
    • Périphériques d'entrée
    • Périphériques de sortie, impression
  • Divers
    • CAO, généralités
    • Echanges de fichiers
    • Organisation du travail
    • Visualisateurs, annotation
    • Pause café
    • Bibliothèques de composants
    • Formation
  • Logiciels connexes
    • Devis, métré, estimation, quantitatif
    • Calculs et simulation
  • Forums métier
    • Bâtiment
    • Infrastructures

Calendriers

Il n’y a aucun résultat à afficher.

Blogs

Il n’y a aucun résultat à afficher.


Rechercher les résultats dans…

Rechercher les résultats qui contiennent…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

10 résultats trouvés

  1. Salut à tous ! Je cherche une routine LISP qui pour chaque calque présent dans un fichier pourrait dupliquer une présentation "Modele" contenant une fenêtre et un texte simple. La fenêtre n'afficherai qu'un seul calque par présentation, le nom de l'onglet ainsi que le texte de chaque serait le nom du calque. Vous auriez ceci en stock ? J'ai fait quelques recherches sans succès et j'ai même essayer de passer par nos amis les IA pour coder cette routine mais ça n'a jamais fonctionné ... Merci à tous pour l'aide !
  2. Salut, Voici ma Lisp qui me fait gagner un temps fou . N'hésiter pas à me faire des retours ou idées d'amélioration. 1. Présentation de la routine LISP d'aplomb et balade entre les étages : - PAN PAN Cette routine permet de définir un écart personnalisé correspondant à la distance entre les étages, rendant vos opérations d'aplomb précises et rapides. C'est un outil très pratique pour les plombages et pour gérer efficacement des plans multi-niveaux. En gros elle fait des Pan, Copies et Déplacements incrémentés. Cette LISP fonctionne aussi sur Autocad LT. 2. Intérêt de la routine Navigation fluide entre les étages : Utilisez les commandes 'BBB' et 'HHH' pour passer rapidement d'un étage à l'autre sans effort. Copie et déplacement précis : Les commandes 'HH', 'BB', 'DH', et 'DB' permettent de copier ou déplacer des éléments avec une grande précision. Cohérence dans la disposition des étages : Grâce à un écart prédéfini, ça assure l'aplomb entre les étages dans votre plan. Flexibilité d'inversion : Appuyez sur 'I' ou 'N' pour inverser facilement la direction (haut/bas) pendant vos opérations. Facilite les Présentations : Copier une fenêtre/présentation, faite 'HHH' dans la fenêtre et vous avez l'étage du dessus d'aplomb avec la disposition de la présentation précédente. 3. Prérequis Avant de commencer, assurez-vous de : Disposer vos étages aligné avec un écart constant entre chaque étages et de préférence un chiffre rond (par exemple : RDC à x0 y0, R+1 à x0 y10, R+2 à x0 y20). Définir l'écart (incrément) entre les étages en utilisant la commande 'EE' avant d'utiliser les autres fonctions. 4. Utilisation Voici comment tirer parti de cette routine : EE : Configurez l'écart (incrément) en spécifiant deux points ( de Bas en Haut) correspondant à la distance entre deux étages consécutifs. Mettez un écart rond pour plus de précision et de facilité. BBB/HHH : Naviguez vers l'étage supérieur ou inférieur. HH/BB : Copiez la sélection d'aplomb sur l'étage supérieur ou inférieur. DH/DB : Déplacez la sélection d'aplomb sur l'étage supérieur ou inférieur. 5. Exemple pratique : Faites une ligne représentant votre décalage entre étages (par exemple, une ligne verticale de 10 de longueur ) Utilisez 'EE' pour définir l'écart (incrément) entre le RdC et le R+1 avec les 2 extrémités de la ligne précédente (par exemple, 10 unités en Y ). Sélectionnez les objets à copier du RdC au R+1. Utilisez 'HH' pour copier d'aplomb vers le haut, répétez (Espace ou Entrer) pour copier au R+2, ou entrez 'I' ou 'N' pour inverser et copier d'aplomb vers le bas au Sous-Sol. 6. Conseils et astuces Configurez des raccourcis clavier (exemple : boutons précédent/suivant de la souris) pour accéder rapidement aux commandes fréquentes, comme ^c^cHHH pour monter d'un étage. Créez des boutons sur la palette d'outils pour un accès rapide aux commandes. N’oubliez pas que vous pouvez inverser la direction ( 'I' ou 'N') pour alterner facilement entre les copies/déplacements vers le haut et vers le bas. Peut aussi servir pour des déplacements/copies rapide dans une légende, tableau ou n'importe quel paterne régulier. Très utile pour avoir des présentations qui plombent d'un étage à l'autre. Cette routine LISP est là pour faciliter les plans multi-étages, c'est une méthode rapide et précise pour naviguer, présenter et manipuler les éléments entre les différents niveaux. Profitez-en ! Bonne journée. ;; Raccourcis clavier ==> ^c^cHHH ;; Raccourcis clavier ==> ^c^cBBB ;; Code AutoLISP pour gérer le décalage en X et en Y et effectuer des opérations de panoramique ;; Code AutoLISP original avec ajout des commandes HH, BB, DH, et DB avec fonctionnalité de répétition ;; Commande EE pour configurer l'écart en X et Y en spécifiant deux points (defun c:ee () ;; Demander à l'utilisateur de spécifier deux points (setq pt1 (getpoint "\nSpécifiez le premier point: ")) (setq pt2 (getpoint "\nSpécifiez le second point: ")) ;; Calculer la distance entre les deux points (setq dx (- (car pt2) (car pt1))) (setq dy (- (cadr pt2) (cadr pt1))) ;; Stocker les valeurs de décalage dans des variables d'environnement (setenv "EcartX" (rtos dx 2 9)) (setenv "EcartY" (rtos dy 2 9)) ;; Afficher les valeurs de décalage (princ (strcat "\nEcart en X défini à: " (rtos dx 2 9))) (princ (strcat "\nEcart en Y défini à: " (rtos dy 2 9))) ;; Message explicatif (princ "\nL'écart a été configuré avec succès.") (princ "\nUtilisez les commandes 'BBB', 'HHH', 'HH', 'BB', 'DH', et 'DB' pour naviguer, copier et déplacer en utilisant ces écarts.") (princ) ) ;; Commande pour effectuer un PAN vers le bas avec les valeurs de décalage en X et Y (defun c:bbb () ;; Récupérer les valeurs des variables de dessin "EcartX" et "EcartY" (setq ecartX (getenv "EcartX")) (setq ecartY (getenv "EcartY")) ;; Si les variables ne sont pas définies, demander à l'utilisateur d'entrer des valeurs (if (not ecartX) (setq ecartX (getreal "\nEntrez la valeur pour Ecart en X: ")) ) (if (not ecartY) (setq ecartY (getreal "\nEntrez la valeur pour Ecart en Y: ")) ) ;; Exécuter la commande PAN avec les valeurs de décalage en X et Y (command "_.pan" "0,0" (strcat "@" ecartX "," ecartY)) (princ) ) ;; Commande pour effectuer un PAN vers le haut avec les valeurs de décalage négatives (defun c:hhh () ;; Récupérer les valeurs des variables de dessin "EcartX" et "EcartY" (setq ecartX (getenv "EcartX")) (setq ecartY (getenv "EcartY")) ;; Si les variables ne sont pas définies, demander à l'utilisateur d'entrer des valeurs (if (not ecartX) (setq ecartX (getreal "\nEntrez la valeur pour Ecart en X: ")) ) (if (not ecartY) (setq ecartY (getreal "\nEntrez la valeur pour Ecart en Y: ")) ) ;; Calculer les valeurs de décalage négatives (setq ecartX-neg (rtos (- (atof ecartX)) 2 9)) (setq ecartY-neg (rtos (- (atof ecartY)) 2 9)) ;; Exécuter la commande PAN avec les valeurs de décalage négatives (command "_.pan" "0,0" (strcat "@" ecartX-neg "," ecartY-neg)) (princ) ) ;; Commande HH (Copie Haut) (defun c:hh () ;; Récupérer les valeurs des variables de dessin "EcartX" et "EcartY" (setq ecartX (getenv "EcartX")) (setq ecartY (getenv "EcartY")) ;; Si les variables ne sont pas définies, demander à l'utilisateur d'entrer les valeurs (if (not ecartX) (setq ecartX (getreal "\nEntrez la valeur pour Ecart en X: ")) ) (if (not ecartY) (setq ecartY (getreal "\nEntrez la valeur pour Ecart en Y: ")) ) ;; Vérifier s'il y a une sélection active (setq sel (ssget)) (if sel (progn (setq multiplier-up 1) (setq multiplier-down 1) (setq direction 1) (setq first-inversion T) (while T (setq current-multiplier (if (> direction 0) multiplier-up multiplier-down)) (setq vector (strcat "@" (rtos (* (atof ecartX) direction current-multiplier) 2 9) "," (rtos (* (atof ecartY) direction current-multiplier) 2 9))) (command "_.COPY" sel "" "0,0" vector) (princ (strcat "\nCopie effectuée: " vector)) (initget "Inverser Nouveau Quitter") (setq input (getkword "\nAppuyez sur Entrée pour continuer, tapez [I]nverser, [N]ouveau ou [Q]uitter: ")) (cond ((= input "Quitter") (exit)) ((or (= input "Inverser") (= input "Nouveau")) (setq direction (* direction -1)) (if first-inversion (setq first-inversion nil) (if (> direction 0) (setq multiplier-up (1+ multiplier-up)) (setq multiplier-down (1+ multiplier-down)) ) ) ) (T (if (> direction 0) (setq multiplier-up (1+ multiplier-up)) (setq multiplier-down (1+ multiplier-down)) ) ) ) ) ) (princ "\nAucune sélection n'a été faite.") ) (princ) ) ;; Commande BB (Copie Bas) (defun c:bb () ;; Récupérer les valeurs des variables de dessin "EcartX" et "EcartY" (setq ecartX (getenv "EcartX")) (setq ecartY (getenv "EcartY")) ;; Si les variables ne sont pas définies, demander à l'utilisateur d'entrer les valeurs (if (not ecartX) (setq ecartX (getreal "\nEntrez la valeur pour Ecart en X: ")) ) (if (not ecartY) (setq ecartY (getreal "\nEntrez la valeur pour Ecart en Y: ")) ) ;; Vérifier s'il y a une sélection active (setq sel (ssget)) (if sel (progn (setq multiplier-up 1) (setq multiplier-down 1) (setq direction -1) (setq first-inversion T) (while T (setq current-multiplier (if (> direction 0) multiplier-up multiplier-down)) (setq vector (strcat "@" (rtos (* (atof ecartX) direction current-multiplier) 2 9) "," (rtos (* (atof ecartY) direction current-multiplier) 2 9))) (command "_.COPY" sel "" "0,0" vector) (princ (strcat "\nCopie effectuée: " vector)) (initget "Inverser Nouveau Quitter") (setq input (getkword "\nAppuyez sur Entrée pour continuer, tapez [I]nverser, [N]ouveau ou [Q]uitter: ")) (cond ((= input "Quitter") (exit)) ((or (= input "Inverser") (= input "Nouveau")) (setq direction (* direction -1)) (if first-inversion (setq first-inversion nil) (if (> direction 0) (setq multiplier-up (1+ multiplier-up)) (setq multiplier-down (1+ multiplier-down)) ) ) ) (T (if (> direction 0) (setq multiplier-up (1+ multiplier-up)) (setq multiplier-down (1+ multiplier-down)) ) ) ) ) ) (princ "\nAucune sélection n'a été faite.") ) (princ) ) ;; Commande DH (Déplacement Haut) (defun c:dh () ;; Récupérer les valeurs des variables de dessin "EcartX" et "EcartY" (setq ecartX (getenv "EcartX")) (setq ecartY (getenv "EcartY")) ;; Si les variables ne sont pas définies, demander à l'utilisateur d'entrer les valeurs (if (not ecartX) (setq ecartX (getreal "\nEntrez la valeur pour Ecart en X: ")) ) (if (not ecartY) (setq ecartY (getreal "\nEntrez la valeur pour Ecart en Y: ")) ) ;; Vérifier s'il y a une sélection active (setq sel (ssget)) (if sel (progn (setq direction 1) (while T (setq vector (strcat "@" (rtos (* (atof ecartX) direction) 2 9) "," (rtos (* (atof ecartY) direction) 2 9))) (command "_.MOVE" sel "" "0,0" vector) (princ (strcat "\nDéplacement effectué: " vector)) (initget "Inverser Nouveau Quitter") (setq input (getkword "\nAppuyez sur Entrée pour continuer, tapez [I]nverser, [N]ouveau ou [Q]uitter: ")) (cond ((= input "Quitter") (exit)) ((or (= input "Inverser") (= input "Nouveau")) (setq direction (* direction -1))) ) ) ) (princ "\nAucune sélection n'a été faite.") ) (princ) ) ;; Commande DB (Déplacement Bas) (defun c:db () ;; Récupérer les valeurs des variables de dessin "EcartX" et "EcartY" (setq ecartX (getenv "EcartX")) (setq ecartY (getenv "EcartY")) ;; Si les variables ne sont pas définies, demander à l'utilisateur d'entrer les valeurs (if (not ecartX) (setq ecartX (getreal "\nEntrez la valeur pour Ecart en X: ")) ) (if (not ecartY) (setq ecartY (getreal "\nEntrez la valeur pour Ecart en Y: ")) ) ;; Vérifier s'il y a une sélection active (setq sel (ssget)) (if sel (progn (setq direction -1) (while T (setq vector (strcat "@" (rtos (* (atof ecartX) direction) 2 9) "," (rtos (* (atof ecartY) direction) 2 9))) (command "_.MOVE" sel "" "0,0" vector) (princ (strcat "\nDéplacement effectué: " vector)) (initget "Inverser Nouveau Quitter") (setq input (getkword "\nAppuyez sur Entrée pour continuer, tapez [I]nverser, [N]ouveau ou [Q]uitter: ")) (cond ((= input "Quitter") (exit)) ((or (= input "Inverser") (= input "Nouveau")) (setq direction (* direction -1))) ) ) ) (princ "\nAucune sélection n'a été faite.") ) (princ) ) ;; Afficher un message pour indiquer que les fonctions ont été chargées (princ "\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Les commandes suivantes sont disponibles :") (princ "\n 1. 'EE' - Configurer l'écart en spécifiant deux points (de Bas en Haut).") (princ "\n 2. 'BBB' - Effectuer un panoramique vers le Bas.") (princ "\n 3. 'HHH' - Effectuer un panoramique vers le Haut.") (princ "\n 4. 'HH' - Copier la sélection vers le Haut (copies multiples possibles, tapez 'I' ou 'N' pour inverser).") (princ "\n 5. 'BB' - Copier la sélection vers le Bas (copies multiples possibles, tapez 'I' ou 'N' pour inverser).") (princ "\n 6. 'DH' - Déplacer la sélection vers le Haut (déplacements multiples possibles, tapez 'I' ou 'N' pour inverser).") (princ "\n 7. 'DB' - Déplacer la sélection vers le Bas (déplacements multiples possibles, tapez 'I' ou 'N' pour inverser).") (princ "\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pour configurer des Raccourcis Clavier pour les Pan dans tes Commandes Personalisée ==> ^c^cHHH & ^c^cBBB - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -") (princ) - PanPan.lsp
  3. Bonjour a toutes et tous, J'ai un petit problème avec le code ci dessous : La routine permet en choisissant un multiple d'altitude (0.5/1/2/5/10/25/50/100 mètres) de placer dans un (nouveau) calque les courbes de niveau (situées dans un calque originel) répondant au critère. Cependant, depuis peu, certaine courbe ne se place pas dans le nouveau calque alors que le critère est respecté (les altitudes affichées dans les propriétés sont juste). Il y a peut être une erreur dans le code, ou une variable a modifier (précision ou arrondi proche par exemple..) ? Merci, (defun c:MAJCL ( ;/ elev ss i el ) (vl-load-com) (setq Valer (getvar "luprec")) (setvar "luprec" 0) (initget 1 "0.5 1 2 5 10 25 50 100") (setq elev (getkword "\nSelect String for filter [0.5/1/2/5/10/25/50/100]: " ) ) (setq LayerCL (car (entsel "\nClick on a layer with contour lines to modify : " ) ) ) (setq EntLay (entget LayerCL)) (setq LAY (cdr (assoc 8 EntLay))) (setq nomcalc (strcat "_NB-MajorLine_" elev)) (initget 1 "Blue Green GRey Pink Red White Yellow Other") (setq ColorCalc (getkword "\nSelect a color for the layer [Blue/Green/GRey/Pink/Red/White/Yellow/Other]: " ) ) (cond ((= ColorCalc "Blue") (setq Color 141) ) ((= ColorCalc "Green") (setq Color 91) ) ((= ColorCalc "GRey") (setq Color 253) ) ((= ColorCalc "Pink") (setq Color 211) ) ((= ColorCalc "Red") (setq Color 241) ) ((= ColorCalc "White") (setq Color 7) ) ((= ColorCalc "Yellow") (setq Color 51) ) ((= ColorCalc "Other") (setq Color 121) ) ) (if (not (tblsearch "LAYER" nomcalc)) (entmake (list (cons 0 "LAYER") (cons 100 "AcDbSymbolTableRecord") (cons 100 "AcDbLayerTableRecord") (cons 2 nomcalc) (cons 70 0) (cons 62 Color) (cons 370 -3) (cons 6 "Continuous") ) ) ) (if (setq ss (ssget "_X" (list (cons 0 "LWPOLYLINE") (cons 8 LAY)) ) ) (repeat (setq i (sslength ss)) (setq el (cdr (assoc 38 (entget (setq e (ssname ss (setq i (1- i)))))) ) ) (if (equal (distof (rtos (rem el (distof elev)) 2 2)) 0.0 1e-6) ; at elevation that is a multiple of elev? (vla-put-Layer (vlax-ename->vla-object e) nomcalc) ;(command "_.chprop" e "" "_layer" nomcalc "") ) ; if ) ; repeat ) ; if (setvar "luprec" Valer) (princ) )
  4. Gilles111

    IXL (CLOS)

    Bonjour à tous. J'ai ouvert un sujet ici Utilisation du Lisp IXL de Patrick35 - AutoCAD 2014 - CadXP Peut-être aurais-je dû commencer ici pour espérer avoir un retour...? Gilles
  5. Bonjour, Comme le titre l'indique, dans la routine suivante, les valeurs par défaut des entrées utilisateur paramétrées à l'aide de GETWORD ne prennent pas en compte la valeur par défaut comprise entre les chevrons lorsqu'on appuie sur ENTREE: (defun FISSURE() (setq OS (getvar "OSMODE" )) ;Enregistre la variable définissant la combinaison d'acroche objets en cours (setq AU (getvar "autosnap")) ;enregistre la valeur de variable autosnap de l'utilisateur (command "accrobj" "proche") ;Définis l'acroche minimale pour le dessin (command "autosnap" "55") (initcommandversion 2) ;exécute la fonction suivante avec les options complètes (command "_spline") ;Lance le dessin de la fissure (while (= (getvar "cmdactive") 1) ;permet à l'utilisateur de tracer plusieurs points sans interrompre la routine (Command pause) ) (command "accrobj" "proche") ;définition de l'accroche objet pour placer la barette (setq D (getpoint "\n Donner la position: ")) ;acquisition de coordonnées d'un point de mise en place de bloc (command "-inserer" "bar" D "1" "") ;insertion du bloc "bar" aux coordonnées capturées précédement (while (= (getvar "cmdactive") 1) ;permet à l'utilisateur d'orienter le bloc sans interrompre la routine (Command pause) ) (Command "osmode" "0") ;désactive tous les accroche objet (if (= Ouv nil) (setq Ouv (getstring "\nDonner la valeur de l'Ouverture O:" "\_space" )) ) (initcommandversion 1) (setq STY "DIADES") (if (not (tblsearch "style" STY)) ;Vérifie l'existence du style Diadès, et le définit comme style de base (command "-style" "DIADES" "ARIAL" "2" "" "" "" "") (command "-style" "DIADES" "" "" "" "" "" "") ) (command "-texte" 0 0 (strcat "O:" Ouv "mm")) ; Renvoie O:Omm (ou le O central est le nombre) en texte (sans retours à la ligne) (setq js (ssadd (entlast)) ;définis le dernier jeu d'entités dans le groupe d'entités nommé js dernier (entlast) ) (command "_copyclip" dernier "") ;Copie le dernier jeu d'entités (command "_erase" dernier "") ;supprime le dernier jeu d'entités (command "_pasteclip") ;colle le dernier jeu d'entités (while (= (getvar "cmdactive") 1) ;permet a l'utilisateur de placer l'objet avant la continuation de la routine (Command pause) ) (initget "Oui Non") (setq rep1 (getkword "\nContinuer ? [Oui/Non] <Oui>: "));demande si la fonction doit être renouvelée, par défaut sur oui (if (= rep1 "Oui") ;si la réponse est oui, (progn (initget "Oui Non") (setq rep2 (getkword "\nConserver l'ouverture? [Oui/Non] <Oui>: ")) (if (= rep2 "Non") (setq Ouv nil) ) (FISSURE) ;la commande est renouvelée (princ) ) (progn ;sinon (command "osmode" OS) ;Réactive l'ancien mode d'acroche objets de l'utilisateur (command "AUTOSNAP" AU) ;réactive l'ancien ssnapmode de l'utilisateur (setq Ouv nil) (princ) ) ) (princ) ) ;Fin de la fonction de dessin du désordre Ci-dessous mon code complet, tout est fonctionnel si on utilise le clic de souris pour sélectionner les choix. Avez vous une idée de ce pourquoi cela ne fonctionne pas? (J'ai pourtant bien suivi les cours de da-code...) Merci d'avance.
  6. Bonjour, Je chercher depuis un moment sans trouver comment bien documenter une fonction Autolisp. Je m'explique, je travail avec l'éditeur de texte Visual Studio Code. Quand je survole une fonction native il me montre la documentation. Exemple pour new_dialog : new_dialog [WIN|MAC] Begins a new dialog box and displays it, and can also specify a default action (new_dialog dlgname<string> dcl_id<integer> action?<string> screen-pt?<list>) @param — dlgname<string> Types: String @param — dcl_id<integer> Types: Integer @param — action<string> Ma fonction : ;| description de ma fonction @Param a string @Param b <string> @Param c \<string> @Returns ? |; (defun maFonction(a b c )) Si je documente ma fonction ci-dessus voilà se que j'obtiens quand je survole maFonction: maFonction [?] description de ma fonction (maFonction a b c) @param — a string @param — b @param — c <string> @returns — ? source — maFonction.lsp Le souci est que je n'arrive pas a obtenir la même documentation. Comme on peut voir avec le type string, J'ai essayer string <string> et \<string> mais rien ne fonctionne je n'arrive pas a avoir le bon typage. Si vous pouvez m'aider a comprendre je vous serai reconnaissant. Merci d'avance.
  7. Hello, Je n'ai commencé à utiliser des scripts sur autocad que très récemment et ils se limitent à l'écriture de lignes de commande que je lance sur plusieurs fichiers grâce à SuperAutoScript (version portable). Ma situation actuelle : j'ai des fichiers de schémas électriques avec plusieurs blocs à l'intérieur pour les disjoncteurs, contacteurs, moteurs, etc. Lorsque je dois modifier un folio, il arrive souvent que tous les folios d'un schéma d'une armoire ont été récupérés sur un autre logiciel au format dxf. Les blocs voient alors certains de leurs attributs être remis à leur valeur d'origine, souvent le nom de l'étiquette. Je dois alors manuellement changer tous les attributs pour les rendre vide. J'ai donc créé des scripts avec des lignes de commande pour chaque bloc et chaque attribut du type : -ATTEDIT N N Y05C0_Y01_0_5_0 COMMENT1 COMMENT1 Je peux alors lancer chaque script sur les folios que je veux modifier grâce à SuperAutoScript. Mon problème : Je dois vérifier chaque folio pour savoir quel bloc il contient et donc adapter les listes de fichiers sur lesquels je lance chaque script. Et j'ai un seul bloc par script, car si dans un seul script j'ai deux blocs mais que l'un des deux n'existe par dans un fichier de ma liste, alors il fera s'arrêter le programme automatique. Mon objectif : écrire un script qui pourra identifier quels types de blocs sont présents dans chaque fichier (ou folio) de ma liste, et ainsi ne modifier que ces blocs là. On peut supposer que je connais les valeur de chaque attribut, ainsi que leurs étiquettes. Bien sûr, si une solution émerge avec un bloc, je la réitérerai pour tous les blocs qui peuvent être présents dans mes folios. Je ne connais pas bien le LISP donc je n'ai pas réussi à trouver de méthode tout seul, besoin d'un peu d'aide pour le coup. Merc d'avance à ceux qui prendront le temps de m'aider. Je vous mets un exemple de script en PJ. script.scr
  8. Bonjour à tous, Je navigue sur internet afin de trouver mon bonheur en programmation LISP, n'étant pas habitué a la programmation je me tourne vers les experts. Auriez vous dans votre bibliothèque, un LISP permettant de répéter la sélection précédente, je m'explique dans le procédé : Je sélectionne plusieurs objets, puis j'effectue une action (déplacer ou copier par exemple). Une fois mon action effectué, plus rien n'est sélectionné c'est normal jusque là. C'est ici que le LISP intervient : je tape une commande LISP, et cela re sélectionne la sélection précédente. Pensez vous que cela est possible sur Autocad ? Un immense merci pour votre aide
  9. Bonjour à tous ! J'ai découvert le merveilleux LISP "LISTBLOCK", me permettant d'afficher dans un tableau le nom, le nombre, et le symbole, c'est super ! Mais il me manque quelque chose d'essentiel, car je souhaiterai afficher également le nom de la visibilité de mon bloc dynamique dans une 4e colonne. J'utilise un même bloc avec des dizaines de visibilités et je souhaiterai les quantifier indépendamment. Merci à vous et bonne fin de journée 🙂
  10. Bonjour, J'utilise le lisp SSL (Gile) pour mes raccourcie de sélection de calque, mais j'aimerais faire la sélection non pas par intervention manuel de la souris mais directement en nommant un calque dans la barre de commande. Cela est-il possible ?
×
×
  • 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é