bonuscad Posté(e) le 19 août 2005 Posté(e) le 19 août 2005 Suite aux dicussions ICI et LA Je vous propose un Lisp (peut etre à alméliorer car établi sous 2002) pour connaitre les variables qui sont modifiées lors d'action par les commandes standard d'AutoCAD.NB:La liste complète des variables peut être consulter en éditant le lisp Pour ceci j'ai repris la même philosophie qu'évoqué à ce FIL Ca peut servir lorqu'on programme ;) (defun c:statenv ( / l_env l_rslt renvoi) (setq l_env '( "ACADALTMENU" "AcadClassic" "ACADLOGFILE" "ACADLspAsDoc" "ActiveAssistance" "AlarmOnError" "ARXDemandLoad" "AssignInsertUnits" "AuditControlFlags" "AutomaticSaveMinutes" "AutoSaveFile" "AutoSnapColor" "AutoSnapPolarAddAng" "AutoSnapPolarAng" "AutoSnapPolarDistance" "AutoSnapPolarMode" "AutoSnapShowAperture" "AutoSnapSize" "AutoSnapTrackPath" "Autotracking vector" "AVEMAP" "Background" "BmpOutCompression" "CheckDrawingSignature" "CmdHistLines" "CmdLine.BackColor" "CmdLine.FontFace" "CmdLine.FontHeight" "CmdLine.FontItalic" "CmdLine.FontPitchAndFamily" "CmdLine.FontWeight" "CmdLine.ForeColor" "CmdVisLines" "CommandDialogs" "ContextMenus" "CreateViewports" "CursorSize" "CustomColors" "CustomDictionary" "DatabaseTablesOpenMode" "DatabaseWorkSpacePath" "DefaultFormatForSave" "DefaultLayerZeroPlotStyle" "DefaultPlotStyle" "DefaultPlotToFile" "DemandLoadingModeler" "DigitizerArbitration" "DisableGraphicsTextArea" "DisableScreenMenuArea" "DisableTrueColor" "EdgeMode" "EmergencyFont" "EntityExtentVariant" "ExplorerInsertUnits" "FileDialog" "FontFace" "FontHeight" "FontItalic" "FontMappingFile" "FontPitchAndFamily" "FontWeight" "GripBlock" "GripColor" "GripHot" "Grips" "GripSize" "HatchAlertDisabled" "HatchType" "HideWarningDialogs" "ImageHighlight" "ImportPathInfo" "InsertUnitsDefSource" "InsertUnitsDefTarget" "IsaveBackupDwg" "IsavePercent" "Layout background" "LayoutRegenControl" "LayoutXhairPickboxEtc" "LineWeightDisplayScale" "LineWeightUnits" "LoadPaletteBySession" "LOGFILE" "LogFileOpen" "LogFilePath" "MainDictionary" "MaxApp" "MaxArray" "MaxDwg" "MaxHatch" "MaxOctTreeNodesToAllocate" "MaxSortEntries" "Measureinit" "MenuFile" "MenuOptionFlags" "MiddleButtonPan" "ModeBits" "MonoVectors" "MRUFilesToList" "MTextEditor" "NetLocation" "NoStartUpDialog" "ObjectARXSupportPath" "ObjectDBXSupportPath" "ObjectSnapCursorSize" "OffsetCurveGapType" "OleHide" "OsnapCoord" "PickAdd" "PickAuto" "PickBox" "PickDrag" "PickFirst" "PlineType" "Plot preview background" "PlotRotationMode" "PlotSpoolerDirectory" "PlotSpoolerNode" "PostscriptQuality" "PrinterConfigDir" "PrinterDescDir" "PrinterStyleSheetDir" "PROXYWEBSEARCHNUMBER" "PSOUT_PrologFileName" "QAFlags" "RasterPreview" "RtDisplay" "SaveFilePath" "ScreenMenu" "Scrollbars" "SDF_AttributeExtractTemplateFile" "SDIMode" "ShowFullPathInTitle" "ShowHyperlinkCursor" "ShowHyperlinkToolTip" "ShowOleScaleDialog" "ShowPaperBackground" "ShowPaperMargins" "ShowPaperSize" "ShowPlotSetup" "ShowPrintBorder" "ShowProxyDialog" "ShowProxyGraphics" "ShowRuler" "ShowTabs" "SnapType" "SQLIndexInDwg" "StatusLine&CoordinateDisplay" "TempDirectory" "TemplatePath" "TextFill" "TextWindow.BackColor" "TextWindow.FontFace" "TextWindow.FontHeight" "TextWindow.FontItalic" "TextWindow.FontPitchAndFamily" "TextWindow.FontWeight" "TextWindow.ForeColor" "ToolTips" "Trim&ExtendProjectMode" "Trimmode" "UCSAxisAng" "UcsIcon3d" "UcsIconActiveColor" "UcsIconCone" "UcsIconLineWidth" "UcsIconNonActiveColor" "UcsIconSize" "UCSOrtho" "UCSView" "Use TODAY as Startup dialog" "UseContextMenus" "UseMenuHeader" "UserName" "WhipArcEnable" "WHIPTHREAD" "WhipThreadEnable" "XFadeCtl" "XhairPickboxEtc" "XrefControlFlags" "XrefLazyLoadMode" "XrefLoadPath" "ZoomFactor" "UseMRUConfig" "PLOTLEGACY" "PSTYLEPOLICY" "OLEQUALITY" "Anyport" "Validation Policy" "Validation Strategy" ) ) (initget 1 "Initial Comparaison") (cond ((eq (getkword "\n[initial/Comparaison] ?: ") "Initial") (setq l_ori (mapcar 'getenv l_env)) ) (T (if (null l_ori) (prompt "\nEtat Initial non mémorisé.\nExecutez l'option Initial") (progn (setq l_rslt (mapcar 'getenv l_env)) (setq renvoi (mapcar '(lambda (x y z) (if (not (equal x y)) (strcat "\n" z " a été modifié.") "" ) ) l_ori l_rslt l_env ) ) (if (null renvoi) (prompt "\nAucune variable modifiée.") (progn (textpage) (foreach n renvoi (if (not (eq n "")) (prompt n))) ) ) ) ) ) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
gile Posté(e) le 19 août 2005 Posté(e) le 19 août 2005 Salut, Encore une fois merci et bravo à Bonscad, ces deux routines (STATVAR et STATENV) seront sûrement très utiles à tous ceux qui pratiquent (ou s'essayent) à la programmation. Mais j'ai une question : où peut on trouver la liste des variables d'environnement pour les versions ultérieures à 2002.J'avais déjà posé cette question à propos de la variable "acedChangeCmdEchoWithoutUndo" qui n'existait pas dans la version 2002, je n'avais pas eu de réponse parceque la question s'était perdue au milieu des autres.Si quelqu'un connait la réponse, elle pourrait servir pour éditer la routine pour les nouvelles versions.
gile Posté(e) le 19 août 2005 Posté(e) le 19 août 2005 Re, Si je peux me permettre, il me semble qu'il y ait une petite erreur :dans le cas d'aucun changement, la variable variable locale "renvoi" ne retourne pas "null" mais une liste de "". Je propose donc de remplacer : (if (null renvoi)(prompt "\nAucune variable modifiée.") par : (if (apply '= renvoi) (prompt "\nAucune variable modifiée.") [Edité le 20/8/2005 par gile]
bonuscad Posté(e) le 20 août 2005 Auteur Posté(e) le 20 août 2005 Bien vu ;) Bien que j'ai employé la fonction (null) qui est effectivement pour une liste vide et que '("" "" "") n'en est pas une. Cela n'avait pas beaucoup d'incidence sur l'execution et je ne l'avais jamais remarqué.En plus la même erreur a été faite sur statvar mais ne se révèle pas car la condition n'est jamais vérifié, a moins de virer les variables CDATE DATE LASTPROMPT TDINDWG TDUSRTIMER *CPUTICKS *MILLISECS de la liste.On peut le faire car ces variables sont systématiquement modifiées quoiqu'on fasse et ne sont pas révélatrices. Pour les variables d'environnement, c'est Bruno Toniutti qui m'avait fourni sa liste, je tient à le remercier au passage ;) Donc je ne peux te dire comment avoir celles de 2005. Merci à toi, ho Oeil d'Aigle :D Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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