Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'default value'.

  • 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

2 résultats trouvés

  1. 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.
  2. Coucou, A force d'écrire des fonctions getXXX pour leur prévoir des valeurs par défaut, des initialisation (initget) et/ou prévoir une aide "?" qui boucle pour afficher un message avant de reposer la même question, j'ai fini par écrire le programme (getkdh) (= GETxxx Keyword Defaultvalue Helpmessage). Donc pour ceux que chat intéresse, le principe de ce programme est de regrouper toutes les fonctionnalités citées ci-dessus en une seule fonction pour récupérer des saisies utilisateurs. Il est donc possible d'utiliser toutes les fonctions compatibles avec (initget) (cf. Help Center - initget (AutoLISP) ), de définir les arguments d'initget comme on le désire (notamment les keyword), de définir également les arguments des fonctions getXXX (notamment l'argument 'pt), de définir une valeur par défaut et/ou d'ajouter un message à afficher pour aider l'utilisateur dans la saisie attendue. Ci-dessous les fonctions LISP (getkdh) ainsi que (str2lst) et (lst2str) nécessaire au fonctionnement de (getkdh) : (defun getkdh (fun pfx arg sfx dft hlp / get bit kwd msg val) (defun get (msg / v) (apply 'initget arg) (if (null (setq v (apply (car fun) (vl-remove nil (mapcar '(lambda (x) (if (vl-symbolp x) (vl-symbol-value x) x)) (cdr fun)))))) (setq v (cdr dft)) v ) ) (and (member (car fun) (list 'getint 'getreal 'getdist 'getangle 'getorient 'getpoint 'getcorner 'getkword 'entsel 'nentsel 'nentselp)) (= 'STR (type (cond (pfx) (""))) (type (cond (sfx) (""))) (type (cond (hlp) ("")))) (listp arg) (if (null (setq bit (car (vl-remove-if-not '(lambda (x) (= 'INT (type x))) arg)))) (setq bit 0) bit) (if (null (setq kwd (car (vl-remove-if-not '(lambda (x) (= 'STR (type x))) arg)))) (not kwd) (if (vl-string-search "_" kwd) (setq kwd (mapcar 'cons (str2lst (car (str2lst kwd "_")) " ") (str2lst (cadr (str2lst kwd "_")) " "))) (setq kwd (mapcar 'cons (str2lst kwd " ") (str2lst kwd " "))) ) ) (if hlp (if (not (assoc "?" kwd)) (setq kwd (append kwd '(("?" . "?")))) T ) T ) (cond ( (null dft) (not dft)) ( (member dft (mapcar 'car kwd)) (setq dft (assoc dft kwd)) ) ( (member dft (mapcar 'cdr kwd)) (setq dft (nth (vl-position (car (member dft (mapcar 'cdr kwd))) (mapcar 'cdr kwd)) kwd)) ) ( T (setq dft (cons (vl-princ-to-string dft) dft))) ) (if (and dft (= 1 (logand 1 bit))) (setq bit (1- bit)) T) (setq arg (vl-remove nil (list bit (lst2str (vl-remove nil (list (lst2str (mapcar 'car kwd) " ") (lst2str (mapcar 'cdr kwd) " "))) "_")))) (if (or pfx kwd dft sfx) (setq msg (strcat (cond (pfx) ("")) (if kwd (strcat " [" (lst2str (mapcar 'car kwd) "/") "]") "") (if dft (strcat " <" (car dft) ">") "") (cond (sfx) ("")) ) ) (not (setq msg nil)) ) (if hlp (while (= "?" (setq val (get msg))) (princ hlp) ) (setq val (get msg)) ) ) val ) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) (defun lst2str (lst sep) (if lst (vl-string-left-trim sep (apply 'strcat (mapcar '(lambda (x) (strcat sep (vl-princ-to-string x)) ) lst ) ) ) ) ) Pour plus d'infos sur les définitions des arguments, il y a le fichier .lsp en PJ (avec l'aide en anglais sur l'utilisation de la fonction). Ci-dessous quelques exemples d'utilisation et du résultat obtenu sur ligne de commande : Commande: (getkdh (quote (getint msg)) "\nSpécifier un nombre entier positif" '(6) " :" 1 nil) Spécifier un nombre entier positif <1> :0 La valeur doit être positive et non nulle. Spécifier un nombre entier positif <1> : *ENTER* 1 Commande: (getkdh (quote (getint msg)) "\nSpécifier un nombre" '(6) " :" 1 "\nLe nombre doit être strictement supérieur à 0") Spécifier un nombre [?] <1> :? Le nombre doit être strictement supérieur à 0 Spécifier un nombre [?] <1> :-1 La valeur doit être positive et non nulle. Spécifier un nombre [?] <1> :12.2 Nécessite un entier positif non nul ou une option. Spécifier un nombre [?] <1> :5 5 Commande: (setq pt (getkdh (quote (getpoint msg)) "\nSpecify a point" nil " : " '(0.0 0.0 0.0) nil)) Specify a point <(0.0 0.0 0.0)> : *ENTER* (0.0 0.0 0.0) Commande: (getkdh (quote (nentselp msg pt)) nil nil nil nil nil) (<Nom d'entité: 2274fb62560> (0.0 0.0 0.0)) ;;or nil if there's no entity Commande: (getkdh (quote (getkword msg)) "\nChoisir une option" '("Active Sélection Toutes _Current Selection All") nil nil "Message d'aide...") Choisir une option [Active/Sélection/Toutes/?]? Message d'aide... Choisir une option [Active/Sélection/Toutes/?]t "All" Commande: (getkdh (quote (getkword msg)) "\nChoisir une option" '("Active Sélection Toutes _Current Selection All") " " "Active" nil) Choisir une option [Active/Sélection/Toutes] <Active> "Current" Commande: (getkdh (quote (getkword msg)) "\nChoisir une option" '("Active Sélection Toutes") " " "eXit" nil) Choisir une option [Active/Sélection/Toutes] <eXit> A "Active" Commande: (getkdh (quote (getkword msg)) "\nChoisir une option" '("Active Sélection Toutes") " " "eXit" nil) Choisir une option [Active/Sélection/Toutes] <eXit> *ENTER* "eXit" Ce ne sont que des exemples parmi tant d'autres, mais cela permet de montrer un peu plus en détail son fonctionnement ^^" Le but étant de pouvoir l'utiliser dans de nombreux cas possibles, évidemment s'il y a des idées d'amélioration je suis preneuse après tout le but est de fournir un outil qui réponde à un maximum de besoin quasi-similaires 😉 PS: Pour ceux qui ne l'on pas remarqué dans les exemples ci-dessus, le premier argument doit obligatoirement être la fonction (quote) suivie de la liste (FunctionName [arg1] msg [arg2]) avec obligatoirement FunctionName en premier atom et msg doit obligatoirement être présent également (il s'agit du symbol à qui le programme affecte la valeur du message affiché pour l'utilisateur, donc il est essentiel également). Les [arg1] et [arg2] correspondent aux arguments optionnels des fonctions reliées à (initget) et dont leur position est relative au [msg]. A savoir que seul (nentselp) possède [arg2] correspondant au [pt], les autres fonctions possèdent seulement [arg1] (ou pas) en plus du [msg]. Si vous avez des questions n'hésitez pas 😉 Bisous, Luna UtDac . lst2str.lsp UtDac . str2lst.lsp UtUse . getkdh.lsp
×
×
  • 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é