Aller au contenu

(getenv) (setenv) Oui mais quelles variables?


Messages recommandés

Posté(e)

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

Posté(e)

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.

Posté(e)

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]

Posté(e)

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

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é