AutoCAD Visual LISP / AutoLISP :: Reset All System Variables?
Oct 11, 2012How I can reset all system variables. I refer to the variables that affect the program globally. I want all remain at the default value. One lisp?
View 2 RepliesHow I can reset all system variables. I refer to the variables that affect the program globally. I want all remain at the default value. One lisp?
View 2 Repliesa simple lisp file?
I want to set "hideprecision" to 1. This variable can not be saved - I looked it up in Express Tools.
So I thought a lisp file to load at start up would do the trick.
My company is in the process of upgrading to AutoCAD 2013 (yes, I know 2014 is out, but IT won’t let us get the most recent because of fear of “new release bugs”). My company is small and our CAD Standards/Management is less than desirable. Over the past few years I have become the unofficial company CAD Manager and have slowly been getting us up to speed with using the latest capabilities and following best practices.
An issue that I deal with constantly is a new user not having the correct registry-saved system variables set up. This also happens a lot because our IT guy frequently reinstalls AutoCAD to fix issues. Every time AutoCAD is installed/reinstalled, all the registry-saved system variables are set to their default values. We have several that need to be set a certain way to match our current drafting standards (a few examples: .bak files turned off, plot.log files turned off, advanced attribute editor turned on, plot area relative to edge of paper, etc, etc.). Typically, I will get complaints from users about something not working correctly, and then I will troubleshoot the issue and eventually find out that they just had their AutoCAD reinstalled and their system variables are not set how they should be. Then I will get out my list and have them set all the variable s properly via the AutoCAD command line.
I have read up on creating AutoCAD Deployments (and we will be using these Deployments for this upgrade), but there does not seem to be a way to set variables when creating the Deployment.
Finally, to complicate things a little more, most of our users actually use AutoCAD LT (so no Lisp), and only a select few (like me) have full AutoCAD. So, we will be creating two separate Deployment files as it stands (which is not a big deal).
Some of my preferred criteria for the solution:
-Solution can be used for both AutoCAD & AutoCAD LT (I’m okay with there being two separate system variable “deployment” files since we will already have two different AutoCAD Deployments. I would just like the procedure for deploying both packages to be the same regardless of whether it’s for LT or full version).
- Solution would be able to be applied to each workstation without opening AutoCAD on each machine (and ideally, it would all happen when the AutoCAD Deployment installer was run!)
Is there any current best practices for accomplishing this? (maybe by changing the registry through batch files, VBscript files, etc? Or using AutoCAD script files – however, this requires the program to be open to run, which I was trying to avoid).
So what I'm trying to do is make a selection set that will only select a specific dimension, as I don't know the exact placement as it varies depending on the size of the part. I know what the value will be, but again the value depends on the size of the part, but one of the items earlier in my program is I get the Hole Spacing, which the dimension I need to select is Half of the Hole Spacing. Here is what I'm trying:
(setq HALFBOLTSPCDXF '((1 . HALFBOLTSPC)))
where HALFBOLTSPC is a variable that takes the Bolt Spacing and divides it by 2.
When I do a run selection in Visual LISP, I get the following:
((1 . HALFBOLTSPC))
But what I was expecting to get was:
((1 . "10.00""))
As my test case is using 20" Hole Spacing which means half the hole spacing is 10.00". So is there another way to do this? OR what do I need to do to get it to recognize the Variable and give the value instead of the Variable name?
If needed: AutoCAD 2013 User using Visual LISP for editing LISP and DCL files Also I have AutoCAD 2011 currently still available for us, but we are using AutoCAD 2013 for 99.9% of AutoCAD use
How can I read the content/ string in the *.dwg file through autolisp?
Suppose I have used any word multiple times in a sheet. How can I count it through lisp programme?
I am unsure why my Lisp does not work.
(DEFUN C:Clear_values (/ GLBLS) (SETQGLBLS '(*DATEDRAWN* *DRAFTNAME* *JOBNUMBER* *OWNERNAME**JOBCOE* *PERMITREVDATE* *PERMITCONTACT* *HOMEBUILDER**SUBDIVISION* *ADDRESS**CITY* *STATE* *ZIP* *LOT#**PARCEL#* *NSCOORD* *EWCOORD* *STANDARDDETAIL#**SUPERNAME* *SALESMAN**GATECODE* *HOMEPHONE* *WORKPHONE* *ALTPHONE1**ALTPHONE2* *EMAIL1* *EMAIL2* *ACCESS**EXCAVATIONTYP* *EXCATDEMO1**EXCATDEMO2* *SKIMRUN* *AWLRUN*
[code]....
I've tried several options such as (mapcar 'set GLBLS "%%") but nothing happens, and with the above code nothing happens; the code only returns nil.
Writing a routine that stores a file name as a string in variable FILE.I check the variable and it returns a nice quoted string: "filename-123.dwg"
I would like AutoCAD to open the file w/out user input.With FILEDIA set to 0, I've tried passing the variable to the command line:
(command "open" FILE)
or in a script as:
open
(FILE)
...
or,
open
!FILE
...
I get the same error. The string dumps to the command line and I get 'Unknown command "DWG" .'
I have a custom variable id like to have displayed in my princ section I have the following however it keeps returning ; error: bad argument type: file
(princ MYVAR " file found..."))
How can I fix this?
I want to write content of variables to a text file but I should have conversion function for variables.
for example
(setq a 123); a is an integer type, contetnt of a is 123
so I should use (itoa a) to get "123" as a string and then I can write it to text file.
but what about another type of variables?
(defun ToString ( a / result)(setq result "")(cond((= (type a) 'ENAME) (progn (setq result "Entity names")))((= (type a) 'EXRXSUBR) (progn (setq result "External ObjectARX applications")))((= (type a) 'FILE) (progn (setq result "File descriptors")))((= (type a) 'INT) (progn (setq result (itoa
[Code].....
I have this lisp that grabs all the text(the value and the location) in my drawings and I put them into a list. Here is what I have so far:
(defun c:loop ()
(setq numbers (ssget "_X" (list (cons 0 "TEXT") (cons 1 "##*")) ))
(setq newlist '())
(setq IN 0);set index
(setq SLGTH (sslength numbers))
[code].......
What i need to happen is this: When "whatever" returns "value0" i need to set "value0" to the first item in list "newlist". Then when "whatever" returns "value1" i need to set "value1" to the second item. Now I can do it the long hand way, but i am trying to simplify this step, and shorten up my overall program.
How can specific attribute values be extracted from a drawing and assigned to a variable in lisp.
The existing title block is having attributes : Area, Sub area, Description, Drawing type. I want to extract this values and assign it to some variable which I have already listed and then it shall be assigned to some other attributes in the same drawing with Area1, Subarea1, Description1, Drawing type1... and so on.. Both the attributes shall be in the same drawing file.
Looking for Lisp command to show (read/assign variables) to normal or custom properties in an object?
View 7 Replies View RelatedWe have a big issue where half our users can't open autocad. We have half running 2013 and half running 2006. For our 2013 users we've gone to our start menu and reset settings to default. and then just re-loaded our custom menus. How can I reset Autocad 2006 to default if I can't open Autocad?
We need to get people up and running.
How do I check, with LISP, if a System Variable is read only? In particular ANNOTATIVEDWG. This one is read/write when there are no annotative objects in a drawing, but read-only if there are.
View 7 Replies View RelatedIs it possible to change the system variable "TEXTSIZE" with an autolisp routine? I have hundreds of drawings that have varying textsize settingings and I can't get it to let me change it, unless I go into "Style" and manually change the value to "0" before I run the routine, and there are simply too may drawings to do that everytime. So, is there a way to reset the textsize to 0 through Lisp?
View 5 Replies View RelatedIs there a lisp that will allow me to do a continuous dimension, but will alternate the dimension position from low, high, low and high? If there is no lisp already created, how to create one?
See Continuous dimension attachment for example.
I work at a glass and glazing company and this is how we dimension mullion width and DLO. See typical window dimensioning attachment for window elevation with dimensions.
I have a list ("temp.dwg" "temp2.dwg") and would like to add the string "insert text here" into each item in the list resulting in ("insert text heretemp.dwg" "insert textheretemp2.dwg"). how would i go about doing that using LISP?
View 2 Replies View RelatedIs there a way to programatically set a visual style before a drawing actually opens?
We have some huge models and people seem to forget to change their visual styles back to 2D wireframe before saving and exiting drawings. Some models will crash on some workstations when trying to open in a rendered mode.
I found a lisp with a function that looked to set viewport visual styles. But it does not seem to be supported anymore. --> (vla-put-VisualStyle vport 1)
I'm trying to write a lisp routine that, when I invoke the mleader command, osmode is set to "nearest" & orthomode is set off. I then would like the original settings to be returned.
attached is what I have written so far:-
Lisp that switches back on Selection Preview i.e. thickens and highlights lines when you hover over them?I don't know why, but they are always unticking the boxes.
View 4 Replies View RelatedI was wondering if there is any way to dump out all system variables with current value in a text file. One way would be to have the variable names already preset in a list of strings then extract them. But is there any other faster way? I need to compare some drawings side by side.
View 6 Replies View Relatedwhen using baseview / viewbase how can I make the resulting views linetypes, weights and colors what I want by default. Currently I change them after creating the views.
View 3 Replies View RelatedUsing the VB.NET example code on exchange.autodesk.com for Defining a User Coordinate System, I pretty much copy and pasted the code to suit my needs. While the example shows how to create a UCS origin, X Axis and Y Axis from scratch, I am attempting to simply cast the values from the system variables UCSORG, UCSXDIR and UCSYDIR. These system variables are read only, and when looking into the types, I believe they are all 3D Point type values.
I'm experiencing errors when trying to run the following code, and it's making me wonder whether what I'm attempting to do is possible. The JIT Debugger is pointing out a System.InvalidCastException. Is there a problem with setting a Point3D value (from the system variable) to a Vector3D type (which is required for defining a new ucs)?
Public Sub saveCurrentUcs()
'get the current document and database
Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim acCurDb As Database = acDoc.Database
[Code]....
Why the system variable is valuable to you if you can. CTAB - Useful in FIELD with Layouts for titleblock sheet numbering.OFFSETGAPTYPE - Multiple offset settings.
View 9 Replies View RelatedHow do I pull up the system variables dialog box? (also is it considered a dialog box?)
I've always changed individual variables at the command line and in all honesty I didn't even know there was a Dialog box for them until I saw a picture of one on a post here.
We have six CAD machines in our office (not including several versions of LT), and only one machine "AutoCAD 2013" is having this issue:
ATTREQ & ATTMODE keep changing to undesirable values.
We generally use "ATTREQ 0" and "ATTMODE 1" and NEVER change these except "ATTREQ" gets changed in some LISP routines depending on the insert, but "ATTMODE" had to be looked up because we never change it from 1.
I know that there is no reference to ATTMODE anywhere in our customizations.
Does AutoCAD try to manage these system variables? Is there anything else that I can check to stop this?
When I create a new dwg, I use a macro to set all the system variables in the drawing - ltscale, hatch scale, etc. I also use the setq function and define a few new "variables" in the drawing. For instance I use setq to define a variable I call "sf" and set it equal to 72. Everything works great and I do my work and close the drawing. Next time I open the drawing, all my custom variables no longer exist. I have to use redefine them all over again. Is there a way to get these custom variables that I create with setq to stick with the drawing permanently - so I do not have to redefine them every time I close/open the drawing?
View 3 Replies View RelatedI have developed a handout for my students and graduates I thought I would share here:
[URL]
My 2011 AutoCAD LT for Mac just started randomly changing the trim, fillet, and extend variables. I looked on other posts and learned how to change them back to the default settings. Since then they keep changing back every few minutes.
Specifically, the TRIMMODE keeps changing from 0 to 1, and the fillet trim mode keeps changing from TRIM to NOTRIM. One of those settings seems to make the extend command also not work as expected. I've been using this AutoCAD install on this particular Mac for over a year. The only recent change is an upgrade to OS X.
Where can I find a complete list of System Variables for ACAD 2013?
View 2 Replies View RelatedIs it possible to execute a certain command based on multiple selections withinin a dcl? for example: two radio colums, one with selections A and B, and a second with selections 1 and 2. is it possible to program commands based on user selections from each column? ex: if A and 1- do a command. A 2- do a different command, etc...
I tried :
(action_tile "key1" "(setq A t")
(action_tile "key2" "(setq B t")
(action_tile "key3" "(setq 1 t)(done_dialog)")
(action_tile "key4" "(setq 2 t)(done_dialog)")
(if
(and (a) (1)
)
(command ...
but was unsuccessful. no matter which combination was selected, the command under all combinations would run.