Aller au contenu

bonuscad

Membres
  • Compteur de contenus

    5 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    56

Tout ce qui a été posté par bonuscad

  1. Oui Bruno_l a raison, il faut s'y prendre autrement. Pour répondre en même temps à une question sur les limites maximun et minmun d'une liste de point sur une polyligne (boite d'encombrement d'un objet) différent de EXTMAX et EXTMIN. Dessiner avec la commande MAINLEV en mode polyligne Faites environ + de 280 sommets et une autre - de 280. Appliquer sucessivement les 2 routines TOTO et TITI, Toto devrait avorter pour plus de 280 sommets. Une limitation du Lisp à laquelle il faut penser s'y on doit manipuler des liste longues (pas évident) :o (defun c:toto ( / ) (while (null (setq ent (entsel "\nSélectionner une polyligne: ")))) (setq ent_rec (entget (car ent))) (cond ((eq (cdr (assoc 0 ent_rec)) "LWPOLYLINE") (setq ptlst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) ent_rec))) (print (length ptlst)) (list (list (eval (cons min (mapcar 'car ptlst))) (eval (cons min (mapcar 'cadr ptlst)))) (list (eval (cons max (mapcar 'car ptlst))) (eval (cons min (mapcar 'cadr ptlst)))) (list (eval (cons max (mapcar 'car ptlst))) (eval (cons max (mapcar 'cadr ptlst)))) (list (eval (cons min (mapcar 'car ptlst))) (eval (cons max (mapcar 'cadr ptlst)))) ) ) (T (princ "\nEntité non valide!") ) ) ) (defun c:titi ( / ) (while (null (setq ent (entsel "\nSélectionner une polyligne: ")))) (setq ent_rec (entget (car ent))) (cond ((eq (cdr (assoc 0 ent_rec)) "LWPOLYLINE") (setq ptlst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) ent_rec))) (print (length ptlst)) (setq min_pr (caar ptlst) max_pr (cadar ptlst) ptlst (cdr ptlst)) (repeat (length ptlst) (setq min_pr (min (caar ptlst) min_pr) max_pr (max (cadar ptlst) max_pr) ptlst (cdr ptlst) ) ) (list min_pr max_pr) ) (T (princ "\nEntité non valide!") ) ) )
  2. bonuscad

    fonction de calcul

    Désolé mais je ne te suis plus :( Tu écris : (setq VAR_ECH_LTYPE (CALCUL_ECH_ECHTP (getvar 'LTSCALE) (getvar 'CELTSCALE) VAR_DP_TXT ConstanteReseau)) J'avais compris, mais maintenant j'ai un doute, que tu voulais affecter à ta variable VAR_ECH_LTYPE le résultat de ta fonction (CALCUL_ECH_ECHTP) avec arguments à passer à ta fonction. et maintenant tu me parle de : (setq CALCUL_ECH_ECHTP (resultat)) Tu as l'air un peu perdu ;)
  3. bonuscad

    fonction de calcul

    Dans ton exemple tu appelle CALCUL_ECH_ECHTP avec 4 arguments , tu dois donc définir ta fonction sous la forme: (defun CALCUL_ECH_ECHTP (arg1 arg2 arg3 arg4 / var1 var2 varN...) Dans ce cas (getvar "LTSCALE") sera affecté à var1 etc.. (dans l'ordre de soumission) var1 var2 seront tes variables locales (si il y en a) à ta fonction (calcul_ech_echtp) Voilà pour le début, on verrra la suite si tu cerne déjà cette syntaxe.
  4. bonuscad

    rotation

    Tout à fait d'accord avec Tramber Rappel: On peut même entrer une valeur sous forme fractionnaire pour des distances ex: 22/7 .Cette notation ne fonctionne malheuresement pas pour les angles, dommage! :(
  5. bonuscad

    entsel

    Tu peux utiliser PLINETYPE en effet mais, à ce moment là, ce n'est plus (entsel) mais (nentsel) qu'il faut utiliser. Tu as certainement penser juste mais écrit faux ;) Mais si tu utilise cet accés direct aux sous-entité, la procédure pour identifier le numéro de segment va devenir difficile, mais c'est peut être un faux problème par rapport a ce que tu veux obtenir (identifier le segment ou obtenir ses points de définition ?) En effet la routine de Didier ne fonctionne pas avec des arcs. La routine sur laquelle je te renvoie assume les arcs mais pas les splines. Elles te retourne les sommets précédent et suivant. (tu peux la modifier pour obtenir la position du segment si c'est vraiment ça que tu cherche)
  6. bonuscad

    entsel

    Salut Tramber, En regardant le fil http://www.cadxp.com/sujetXForum-3162.htm Je trouve que la demande est similaire et pourrait être aussi résolue par la même démarche. La solution de Didier est bonne (mais plante sur le vertex qui peut clore une polyligne) Avec ces 2 dicussions tu trouveras certainement la solution que tu désire.
  7. bonuscad

    Autocad 2004

    Petite rectification Je vais envoyer de ce pas à Patrick une mise à jour de BonusCAD où il n'y aura que ce que j'ai pu développer (à 1 ou 2 exceptions près) D'abord parce que certaines fonctions ont été corrigées ou améliorées et d'autre ajoutées. Et bien que j'avais laisser les entêtes dans les sources pour identifier l'auteur, je préfère les supprimer du téléchargement pour éviter ce genre de confusion. JE NE SUIS PAS L'AUTEUR de HATCHB.LSP Rendons a César ce qui est à César. ;) PS: Pour ceux que ça interesse, surveillez la mise en ligne de la mise à jour de Bonuscad.
  8. bonuscad

    Autocad 2004

    Salut Va visiter cette adresse La solution fonctionne généralement bien http://www.jtbworld.com/lisp/hatchb.htm
  9. Personaliser la fonction $(rtos,X,2,0) Celle ci est pour le système décimal (2) et pas de décimales (0) Si vous voulez 2 décimales après la virgule changez 0 en 2.
  10. Tout est dans l'aide "Aide aux développeurs d'AutoCAD" La partie Lisp est en Anglais :( La partie DXF en Français :) Code DXF ->Référence DXF -->Section ENTITIES --->DIMENSION ---->Codes de groupe communs aux cotes
  11. Salut, Ce n'est pas grand chose, les copier-coller sont souvent mal transcrits. Ici, il y a eu un espace supplémentaire après le g du 2eme (getvar) Voilà, corrige donc la ligne et tout devrait bien aller. Vérifie aussi qu'il n'y ait pas d'espace supplémentaire en fin de ligne après le '";" Bravo à RebCAO, c'est vrai que ses solutions en diesiel sont bien pensées. ;) Utilisateurs de LT vous allez vous "regaler".
  12. La pour débuter c'est plus à ta portée... Flatten des Express Tools n'aurait-il pas fait l'affaire? Voilà quand même pour l'exemple ce que tu veux executer. (defun c:spl3Dto2D ( / flag_erase old_osmd e l_dxf l_som 2d_lsom ) (setvar "cmdecho" 0) (initget "Général Courant _Wolrd Current") (if (eq (getkword "\nProjection 2D dans SCU [Général/Courant]: ") "Wolrd") (command "_.ucs" "_world") ) (initget "Oui Non _Yes No") (if (eq (getkword "\nEffacer la spline3 [Oui/Non] ") "No") (progn (princ "\nBien Chef, on conserve") (setq flag_erase T)) (setq flag_erase nil) ) (setq old_osmd (getvar "osmode")) (setq js (ssget "_X" '((0 . "SPLINE") (67 . 0) (410 . "Model")))) (cond (js (command "_.undo" "_begin") (setvar "osmode" 0) (repeat (setq n (sslength js)) (setq l_dxf (entget (setq e (ssname js (setq n (1- n)))))) (setq l_som (mapcar '(lambda (x) (trans x e 0)) (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) l_dxf)))) (setq 2d_lsom (mapcar '(lambda (x) (trans (list (car x) (cadr x) 0.0) 0 1)) l_som)) (command "_.pline" (foreach n 2d_lsom (command n)) ) (command "_.pedit" (entlast) "_spline" "") (if (not flag_erase) (entdel e) ) ) (setvar "osmode" old_osmd) (command "_.undo" "_end") ) (T (princ "\nAucune Spline trouvée") ) ) (setvar "cmdecho" 1) (prin1) )
  13. Si tu veux effacer toutes les côtes DIAMETRE: (ssget "_X" '((0 . "DIMENSION") (-4 . "&=") (70 . 3))) voir code dxf 70 sur les cotations pour les autres possibilités
  14. He oui, bien pratique cette fonction d'extraction des sommets (Merci à Serge Camiré) Cequi pourrait donner comme fonction pour ton cas: (defun c:spl3Dto2D ( / old_osmd e l_som 2d_lsom) (setq old_osmd (getvar "osmode")) (setvar "osmode" 0) (setq l_som (mapcar '(lambda (x) (trans x e 0)) (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (setq e (car (entsel "\nChoix de la spline 3D")))))))) (setq 2d_lsom (mapcar '(lambda (x) (trans (list (car x) (cadr x) 0.0) 0 1)) l_som)) (command "_.pline" (foreach n 2d_lsom (command n)) ) (command "_.pedit" (entlast) "_spline" "") (initget "Non Oui") (if (eq (getkword "\nEffacer la spline3 ") "Non") (princ "\nBien Chef, on conserve") (entdel e) ) (setvar "osmode" old_osmd) (prin1) ) Pour débuter en lisp tu n'as pas choisi le plus simple ;)
  15. Pour un bloc du même nom que celui sélectioné: (ssget "_X" (cons '(0 . "INSERT") (list (assoc 2 (entget (car (entsel))))))) Si tu lance cette ligne au message commande d'AutoCAD, cette sélection sera placé dans le jeux de sélection précédent. Donc tu pourras faire EFFACER Précédent Par contre tu peux aussi lancer cette ligne en transparence Commande: EFFACER Choix des objets: (ligne instruction lisp/ou bouton prédéfini) Choix de l'objet: Choisir un bloc modèle X trouvés. Choix des objets: valider NB:Il n'y a pas de controle sur la validité de l'entité modèle séléctionner (Attention au choix!)
  16. Bon avec des explications plus claires, on comprend mieux. Je te suggère de changer la ligne dans tampon.lsp (setq TouTampon (ssget "X" '((2 . "$tampon$"))) en (setq TouTampon (ssget "X" (cons (cons 410 (getvar "CTAB"))'((2 . "$tampon$")))) Ce qui aura pour effet de ne mettre à jour que la présentation courante.
  17. Salut Si tu as les express, tu peux utiliser la fonction qui converti les attributs en texte. Une fois converti, ils ne seront plus mis à jour! ;)
  18. Ma réponse sera adressée à des versions non-LT Tu peux glisser dans un bouton l'instruction suivante: (ssget "_X" (list (assoc 0 (entget (car (entsel)))))) ceci sélectionnera les entité tu type sélectionné, si tu sélectionne un cercle, ce sera tout les cerles du dessin dans les 2 'espace (objet et papier). (ssget "_X" (list (assoc 8 (entget (car (entsel)))))) cet autre exemple sélectionnera les entités du calque correspondant à celui sélectionné, dans les 2 espace. On peut en faire beaucoup d'autres et même combiner; par exemple le calque et le type d'entité.
  19. Salut, Une solution qui ne te conviendra peut être pas, mais tu n'as pas besoin de changer le sens trigo. Arc - Centre - 1er point - et au lieu de fournir le 2eme point tu prend l'option Angle et tu entre ton angle que tu veux décrire ex en degré: 84 pour un angle de 84 dans sens trigo ou -276 (84 - 360) pour l'angle complémentaire à 84 dans le sens horaire.
  20. bonuscad

    Heu.... j\'ai honte

    Merci de vos compliments à tous Je travaille essentiellement sous 2002, j'en suis pleinement satisfait. Quand je vois les misères rencontré avec la 2004, je ne me presse pas, surtout que je trouve les évolutions mineures et ne correspondant pas à mes besoins. J'ai essayé la 2004 sous 30 jours sur un poste Millenium (même pas XP) et j'ai rencontré des problèmes (il ne me reconnaissait plus les motifs de hachures ISO, j'ai jamais rien compris: pourtant j'ai fouillé)
  21. Bonjour Patrick, Un début de réponse avec le code suivant qui te renseignera sur les blocs existant et les éventuels blocs qu'il peut contenir. Le résultats ne veut pas dire qu'ils soient inseré, mais définis! Il faudrait complèter le code pour faire des sélections avec les noms retournés par (ssget "_X" ' ((2 . "nom du bloc"))). (defun xplore (l / ent) (princ (strcat "\nExplore le bloc " (cdr (assoc 2 l)))) (setq ent (entget (cdr (assoc -2 l)))) (cond ((eq (cdr (assoc 0 ent)) "INSERT") (princ (strcat "\n Contient le bloc "(cdr (assoc 2 ent)))) (while (setq ent (entnext (cdar ent))) (setq ent (entget ent)) (if (eq (cdr (assoc 0 ent)) "INSERT") (princ (strcat "\n Contient le sous-bloc "(cdr (assoc 2 ent)))) ) ) ) ) ) (defun c:list_blk_children ( / first_blk l_blk n_blk) (setq first_blk (tblnext "BLOCK" T)) (cond (first_blk (setq l_blk (list first_blk)) (while (setq n_blk (tblnext "BLOCK")) (setq l_blk (cons n_blk l_blk)) ) (foreach n l_blk (xplore n)) ) (T (princ "\nPas de blocs définis!") ) ) (prin1) )
  22. bonuscad

    Bug AutoCAD 14 / XP

    A priori, on dirait que les ARX ne sont pas chargés automatiquement. Bien que ce ne soit pas normal, tu peux contourner le problème en créant dans le dossier d'AutoCAD un fichier ACAD.RX dans le quel tu mettra tout les noms des fichiers ARX que tu veux charger automatiquement, ceci avec le bloc-note, bien sur. Bonne chance!
  23. bonuscad

    Heu.... j\'ai honte

    Hello Didier, Je ne m'en suis jamais servi pour comparer 2 machines, mais pourquoi pas!? ;) Dans le même esprit j'ai aussi une routine qui compare les fonctions chargées en mémoire par rapport à un état initial quel l'on fixe à un moment choisi (c'est à dire après le chargement automatique de fonctions) Cela me sert principalement à voir si je n'ai pas oublié de déclarer des variables dans mon programme en local après son execution . Mais on peut voir aussi toutes les fonctions valides et les variables déclarées (cela fait une très longue liste) On peut découvrir des fonctions interressantes mais le Hic c'est qu'elle ne sont plus consultable en clair comme dans les anciennes versions à l'aide du ! (point d'exclamation) Si interessé, voir dans le téléchargement de Bonuscad les fichiers FC-INIT.LSP et FC-LOAD.LSP ainsi que le fichier ATOMLST0.ORI qui est le fichier des fonctions standards basiques pour 2002.
  24. Salut Pako Exact! Je me suis fais avoir par le copier-coller avec les caractères spéciaux qui sont mal interprétés par le BBcode (setq js_swap (ssget "_X" '((-4 . " (cond a été tronqué Ligne originale: (setq js_swap (ssget "_X" '((-4 . "NOT") (60 . 1) (-4 . "NOT"))) n_swap 0) (cond en rajoutant manuellement et respectivement le symbole INFERIEUR AVANT le 1er NOT et SUPERIEUR APRES le 2eme NOT
  25. bonuscad

    Heu.... j\'ai honte

    La réponse d'un "Slippeur" fou. Un truc qui me sert bien quand je programme pour identifier la modification d'une variable. Je l'initialise en lancant la procédure une 1ere fois Je lance ma commande standard ou même un prog lisp ou autre que je soupconne de modifier une variable sans la remettre dans son état initial. Je relance la procédure une 2eme fois, et magique j'ai les variables modifiées entre les 2 instants "T" NB: Développer avec les variables de la 2002, on peut adapter pour les autres versions. commande STATVAR (defun c:statvar ( / l_var l_rslt renvoi) (setq l_var '( "ACADLSPASDOC" "ACADPREFIX" "ACADVER" "ACISOUTVER" "AFLAGS" "ANGBASE" "ANGDIR" "APBOX" "APERTURE" "AREA" "ATTDIA" "ATTMODE" "ATTREQ" "AUDITCTL" "AUNITS" "AUPREC" "AUTOSNAP" "BACKZ" "BINDTYPE" "BLIPMODE" "CDATE" "CECOLOR" "CELTSCALE" "CELTYPE" "CELWEIGHT" "CHAMFERA" "CHAMFERB" "CHAMFERC" "CHAMFERD" "CHAMMODE" "CIRCLERAD" "CLAYER" "CMDACTIVE" "CMDDIA" "CMDECHO" "CMDNAMES" "CMLJUST" "CMLSCALE" "CMLSTYLE" "COMPASS" "COORDS" "CPLOTSTYLE" "CPROFILE" "CTAB" "CURSORSIZE" "CVPORT" "DATE" "DBMOD" "DCTCUST" "DCTMAIN" "DEFLPLSTYLE" "DEFPLSTYLE" "DELOBJ" "DEMANDLOAD" "DIASTAT" "DIMADEC" "DIMALT" "DIMALTD" "DIMALTF" "DIMALTRND" "DIMALTTD" "DIMALTTZ" "DIMALTU" "DIMALTZ" "DIMAPOST" "DIMASO" "DIMASZ" "DIMATFIT" "DIMAUNIT" "DIMAZIN" "DIMBLK" "DIMBLK1" "DIMBLK2" "DIMCEN" "DIMCLRD" "DIMCLRE" "DIMCLRT" "DIMDEC" "DIMDLE" "DIMDLI" "DIMDSEP" "DIMEXE" "DIMEXO" "DIMFIT" "DIMFRAC" "DIMGAP" "DIMJUST" "DIMLDRBLK" "DIMLFAC" "DIMLIM" "DIMLUNIT" "DIMLWD" "DIMLWE" "DIMPOST" "DIMRND" "DIMSAH" "DIMSCALE" "DIMSD1" "DIMSD2" "DIMSE1" "DIMSE2" "DIMSHO" "DIMSOXD" "DIMSTYLE" "DIMTAD" "DIMTDEC" "DIMTFAC" "DIMTIH" "DIMTIX" "DIMTM" "DIMTMOVE" "DIMTOFL" "DIMTOH" "DIMTOL" "DIMTOLJ" "DIMTP" "DIMTSZ" "DIMTVP" "DIMTXSTY" "DIMTXT" "DIMTZIN" "DIMUNIT" "DIMUPT" "DIMZIN" "DISPSILH" "DISTANCE" "DONUTID" "DONUTOD" "DRAGMODE" "DRAGP1" "DRAGP2" "DWGCHECK" "DWGCODEPAGE" "DWGNAME" "DWGPREFIX" "DWGTITLED" "EDGEMODE" "ELEVATION" "EXPERT" "EXPLMODE" "EXTMAX" "EXTMIN" "EXTNAMES" "FACETRATIO" "FACETRES" "FILEDIA" "FILLETRAD" "FILLMODE" "FONTALT" "FONTMAP" "FRONTZ" "FULLOPEN" "GRIDMODE" "GRIDUNIT" "GRIPBLOCK" "GRIPCOLOR" "GRIPHOT" "GRIPS" "GRIPSIZE" "HANDLES" "HIDEPRECISION" "HIGHLIGHT" "HPANG" "HPBOUND" "HPDOUBLE" "HPNAME" "HPSCALE" "HPSPACE" "HYPERLINKBASE" "IMAGEHLT" "INDEXCTL" "INETLOCATION" "INSBASE" "INSNAME" "INSUNITS" "INSUNITSDEFSOURCE" "INSUNITSDEFTARGET" "ISAVEBAK" "ISAVEPERCENT" "ISOLINES" "LASTANGLE" "LASTPOINT" "LASTPROMPT" "LENSLENGTH" "LIMCHECK" "LIMMAX" "LIMMIN" "LISPINIT" "LOCALE" "LOGFILEMODE" "LOGFILENAME" "LOGFILEPATH" "LOGINNAME" "LTSCALE" "LUNITS" "LUPREC" "LWDEFAULT" "LWDISPLAY" "LWUNITS" "MAXACTVP" "MAXOBJMEM" "MAXSORT" "MBUTTONPAN" "MEASUREINIT" "MEASUREMENT" "MENUCTL" "MENUECHO" "MENUNAME" "MIRRTEXT" "MODEMACRO" "MTEXTED" "NOMUTT" "OFFSETDIST" "OFFSETGAPTYPE" "OLEHIDE" "OLEQUALITY" "OLESTARTUP" "ORTHOMODE" "OSMODE" "OSNAPCOORD" "PAPERUPDATE" "PDMODE" "PDSIZE" "PELLIPSE" "PERIMETER" "PFACEVMAX" "PICKADD" "PICKAUTO" "PICKBOX" "PICKDRAG" "PICKFIRST" "PICKSTYLE" "PLATFORM" "PLINEGEN" "PLINETYPE" "PLINEWID" "PLOTID" "PLOTROTMODE" "PLOTTER" "PLQUIET" "POLARADDANG" "POLARANG" "POLARDIST" "POLARMODE" "POLYSIDES" "POPUPS" "PROJECTNAME" "PROJMODE" "PROXYGRAPHIC" "PROXYNOTICE" "PROXYSHOW" "PSLTSCALE" "PSPROLOG" "PSQUALITY" "PSTYLEMODE" "PSTYLEPOLICY" "PSVPSCALE" "PUCSBASE" "QTEXTMODE" "RASTERPREVIEW" "REFEDITNAME" "REGENMODE" "RE-INIT" "RTDISPLAY" "SAUVACIS" "SAVEFILE" "SAVEFILEPATH" "SAVENAME" "SAVETIME" "SCREENBOXES" "SCREENMODE" "SCREENSIZE" "SDI" "SHADEDGE" "SHADEDIF" "SHORTCUTMENU" "SHPNAME" "SKETCHINC" "SKPOLY" "SNAPANG" "SNAPBASE" "SNAPISOPAIR" "SNAPMODE" "SNAPSTYL" "SNAPTYPE" "SNAPUNIT" "SOLIDCHECK" "SORTENTS" "SPLFRAME" "SPLINESEGS" "SPLINETYPE" "SURFTAB1" "SURFTAB2" "SURFTYPE" "SURFU" "SURFV" "SYSCODEPAGE" "TABMODE" "TARGET" "TDCREATE" "TDINDWG" "TDUCREATE" "TDUPDATE" "TDUSRTIMER" "TDUUPDATE" "TEMPPREFIX" "TEXTEVAL" "TEXTFILL" "TEXTQLTY" "TEXTSIZE" "TEXTSTYLE" "THICKNESS" "TILEMODE" "TOOLTIPS" "TRACEWID" "TRACKPATH" "TREEDEPTH" "TREEMAX" "TRIMMODE" "TSPACEFAC" "TSPACETYPE" "TSTACKALIGN" "TSTACKSIZE" "UCSAXISANG" "UCSBASE" "UCSFOLLOW" "UCSICON" "UCSNAME" "UCSORG" "UCSORTHO" "UCSVIEW" "UCSVP" "UCSXDIR" "UCSYDIR" "UNDOCTL" "UNDOMARKS" "UNITMODE" "*USERI1" "*USERI2" "*USERI3" "*USERI4" "*USERI5" "*USERR1" "*USERR2" "*USERR3" "*USERR4" "*USERR5" "*USERS1" "*USERS2" "*USERS3" "*USERS4" "*USERS5" "VIEWCTR" "VIEWDIR" "VIEWMODE" "VIEWSIZE" "VIEWTWIST" "VISRETAIN" "VSMAX" "VSMIN" "WHIPARC" "WMFBKGND" "WORLDUCS" "WORLDVIEW" "WRITESTAT" "XCLIPFRAME" "XEDIT" "XFADECTL" "XLOADCTL" "XLOADPATH" "XREFCTL" "ZOOMFACTOR" "*FORCE_PAGING" "*FLATLAND" "*ERRNO" "*ENTMODS" "*ENTEXTS" "*DBCSTATE" ;"*CPUTICKS" "*AXISUNIT" "*AUXSTAT" "*ADCSTATE" "*ACGIDUMPMODE" "*_VERNUM" "*_SERVER" "*_PKSER" ;"*_LINFO" "*USEACIS" "*RE-INIT" "*QAUCSLOCK" "*QAFLAGS" "*PROGRAM" "*PRODUCT" "*PHANDLE" "*OPMSTATE" "*NODENAME" "*MILLISECS" "*MAXOBJMEM" "*MACROTRACE" "*LAZYLOAD" "*GLOBCHECK" ) ) (initget 1 "Initial Comparaison") (cond ((eq (getkword "\n[initial/Comparaison] ?: ") "Initial") (setq l_ori (mapcar 'getvar l_var)) ) (T (if (null l_ori) (prompt "\nEtat Initial non mémorisé.\nExecutez l'option Initial") (progn (setq l_rslt (mapcar 'getvar l_var)) (setq renvoi (mapcar '(lambda (x y z) (if (not (equal x y)) (strcat "\n" z " a été modifié.") "" ) ) l_ori l_rslt l_var ) ) (if (null renvoi) (prompt "\nAucune variable modifiée.") (progn (textpage) (foreach n renvoi (if (not (eq n "")) (prompt n))) ) ) ) ) ) ) (prin1) )
×
×
  • 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é