AutoCAD Visual LISP / AutoLISP :: Looping A Command

Aug 26, 2013

I am using AutoCAD 2011. I have a lisp that I have created/modified.

What it does:

Allows me to Select a layer that I call out and change its color properties back to bylayer.

(i primarily use this when i am cleaning up my drawings, I turn them all to gray with another command i have then i run this one to find all the entities on that specified layer)

What i am trying to do: 

I would like this command to do a loop.  So say i type in a layer name that does not exist, instead of running through the rest of the command i want it to revert back to "specify layer name" until the correct name is entered for that layer.

Here is the lisp:

(defun cLL ()
(setq varLayer (getstring t "
Specify Layer Name: "))
(sssetfirst nil (ssget "X" (list (cons 8 varLayer))))
(command "change" "p" "" "p" "c" "bylayer" "")
(princ)

View 9 Replies


ADVERTISEMENT

AutoCAD Visual LISP / AutoLISP :: Looping Through Results

Jun 3, 2013

I wrote a lisp, that grabs all text and assigns it a variable. Here's what it looks like:

(setq numbers (ssget "_X" (list (cons 0 "TEXT") (cons 1 "*")) ))
(sslength numbers)  
  (setq numb1(ssname numbers 0))
    (setq enlist1 (entget numb1))
    (setq texty (fix (caddr(assoc 10 enlist1))))
    (setq value1 (cdr(assoc 1 enlist1)))

In this case length returns a value of 20.  I can repeat this command 20 times and have all these variables but I don't think that is the best way.  I do need the "y" value insertion point of the text.  Line numbers are very important with what I do.In the end what I want to do is

1.   sort through how ever many values sslength returns.

2.  compare a blocks attribute "y" value insertion point with that of all the text values.

3.  If both y values are equal then that blocks "tag name" will be changed.

Here is what I am doing on the block end with for reference:

(if (= texty fuwhole)
(setq funum1 (subst (cons 1 (strcat "FU" value1)) (assoc 1 funum1) funum1))
(entmod funum1)
)
fuwhole is the blocks "y" value insertion point.
funum1 is the blocks dxf group code

View 2 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Looping In Keyboard Macros

Jan 9, 2013

I have created the following keyboard macro:

^C^C_.MOCORO \ C X R

It launches move-copy-rotate, allows me to pick 2 items (in my case a electrical symbol and its associated tag), copies the entities to the desired location then rotates.  It works perfect, however after the rotate I need to repeat the process indefinitely starting before the "C".

I know that I can usu an asterisk at the beginning to loop the entire macro, however I don't want to re-select, just continue on with the MCR function using the already selected entities.  Any GOTO function in macros?

I suspect that I might need LISP for this but I not familiar with writing that code.

View 4 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Looping Through Attributes And Store Values?

Mar 19, 2013

I have an interesting challenge. I am tasked with updating old drawings. The only difficulty that I've run into with the old files are that the TitleBlocks are all done with all of the attributes are named "SPEC". There are 90 attributes. I'm really struggling with getting each attribute's value and then storing the value to a variable so that I can then put that value into a new TitleBlock. The old TB will be deleted to avoid future confusion in the file.

(To clearify, the old TitleBlock is in model space, while there are actually nine new TitleBlocks all in seperate paper space Layouts, and this program may have to run on hundreds of files.)

getting the values from the Old TB. I need them in order of first to last or last to first (either way will work since I have the variable names in a list that can be reversed if necessary.) 

simple function to read through the block's attributes in order and store the attribute's value to a variable name in the seperate list (also in order)?

View 5 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Annotation Command Set Correct Layer For Duration Of Command

Nov 21, 2010

I am currently writing a series of routines for setting the layers for text, leaders and dimension commands. The end goal is a system where any annotation command sets the correct layer for the duration of the command, then reverts back to the layer that was active before the command.

I have managed to complete all the code, and it appears to be working fine, I just have one question: I have used -layer "m" "Lay_name" etc... for all layer setting commands, rather than any code to see if the layer exists already. In my limited testing this seems to be suitable, nothing that exists on that layer seems to be affected.

I know how to write code to determine if the layer exists already and set the layer instead, but so far it seems unnecessary??

View 8 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Write A Lisp Routine That Invoke The Mleader Command

Oct 11, 2012

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:-

View 4 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Nil At The End Of Command

Jun 22, 2012

I have a routine that work fine, but I receive a nil at the end of command. How to fix that?

View 7 Replies View Related

AutoCAD Visual LISP / AutoLISP :: DOS DIR Command

Oct 27, 2012

I need a program that simulate this DOS command: dir /on/b *.dwg >list.txt

it list all dwg files on current open dwg file folder and sort them and finally put them in a text file with list.txt name. something like thistype list.txt)

test1.dwg
test2.dwg
test100.dwg
test256.dwg
test1005.dwg

(sort alphabetically and logically) because of disabled DOS utility in my PC I need a pure lisp functions, I tried to wrote this program but I couldn't!!

(defun c:listMaker()
(vl-load-com)
(setq path (getvar "dwgprefix"))
(setq fn "list.txt")
[code]...

and also I need a append a string(='This Is EOF') in the last line of the "list.txt" file.

View 8 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Can't Get While Command Right?

Apr 13, 2012

I am trying to get my original layer and lintype reinstated after the user is finished with the pline..I know Im suppose to use the while command but am now completely lost on which way to do this

(DEFUN c:TEST1 ()(if (not (tblsearch "LTYPE" "MYWC")) (command "-linetype" "LOAD" "MYWC" "C:/COUNTER.LIN" ""));SECOND PROGRAM...;CREATE CORESPONDING LAYER...(command "._Layer" "Make" "WC LEIDING" "Ltype" "Continuous" "" "Color" "211" "" "")(SETQ MYOLDCELTYPE (GETVAR "CELTYPE"))(SETVAR "CELTYPE" "MYWC")(while (PROGN(COMMAND "pline")(SETVAR "CELTYPE" MYOLDCELTYPE)))

View 5 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Error In While Command

May 22, 2013

We have a lisp routine that I co-authored ages ago and then haven't done much programming in about 7 years.  I seem to have forgotten much of my language skills.  This portion of the lisp routine was running fine in autocad 2005 which is what the computer had on it, and it doesn't run on autocad 2010. 

I've narrowed it down to the while statement which is why you see it commented out, but that portion is necessary.   My main question is was there a change in the language specifically the while statement between 2005 and 2010? 
 
; GET LINES OVER 10" AND THROW OUT (if (= (cdr(assoc 0 outerinfo)) "LWPOLYLINE") (progn (setq remlenouter 0.0) (setq numseg (cdr(assoc 90 outerinfo))) (setq edd (member(assoc 10 outerinfo) outerinfo)) (setq n1 0) ;(while (< n1 (- (* numseg 4) 4)) ;(setq dist (distance (cdr(nth n1 edd)) (cdr(nth (+ n1 4) edd)))) ;(if (>= dist edmmax) (setq remlenouter (+ remlenouter dist))) ;(setq n1 (+ n1 4)) ;) ; end while (setq dist (distance (cdr(nth n1 edd)) (cdr(nth 0 edd)))) (if (>= dist edmmax) (setq remlenouter (+ remlenouter dist))) ) ; end progn ) ; END IF

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Check For Last Command

Jan 8, 2014

We have developed processes, standard operating procedures, work instructions (whatever you want to call it) for several tasks we do on a regular basis.  More importantly, tasks that we don't do on a regular basis.  On some processes, performing certain commands is a critical step in the quality of the product.  I have also developed a lot of lisps to streamline these processes.  Of course there are commands that just don't make sense to try and include into existing lisps.

The problem we're having though, is that people are not following the processes.  I don't know if they think they are smarter than the process, or if they don't understand the process, or if they are just complacent.

One of the things that would really work to get everyone to follow the process, is to have my lisp routines check to see what the last entry at the command line was.

For example, if one of my lisps depended on the drawing be saved, well, instead of putting the save command in the lisp, sometimes it would be beneficial to check to see if the drawing was saved in the first place.  Kudos to those who do follow the process, they do save the drawing, and then run the lisp.  On rather large files, I would prefer not to save the drawing twice, back to back.

There are a lot more benefits to checking to see what the last user entry was, in a certain drawing. 

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: DCL Command Locking Up

Aug 8, 2012

 I am new to DCL programming and am having an issue getting a button to recognize a command.  As a simple first attempt, I am trying to create a dcl with a button called "draw test line"  that will draw a line from 0,0 to 1,1.  The lisp loads correctly and the "cancel" button works fine.  However when the "draw test line" button is pressed, autocad locks up and the only solution is to restart.  here is the dcl

testline : dialog {
          label = "draw line test";
          : column {
            : boxed_column {
              : button {
                key = "but1";
                label = "draw a line";
                is_default = false;
[code]....

View 4 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Can't Redefine ID Command

Nov 5, 2013

I've written a script that improves the default "ID" command, but it's not working.

I was able to redefine the "DI" command.

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Return Last Command

Jun 27, 2013

Trying to diable the spacebar = (return last command) function!

commandlinehide does te job in the working interface, but a space in scriptmode (in the filename e.g.) still repeats last command!

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Control UCS Without Using Command Line?

Nov 9, 2012

Is it possible to control the UCS without using the command line?  I'd like to access it and control it with vlisp much the same way I can access DXF groups and manipulate insertions.  Seems like it should be possible to play with it's definition inside the object model.

View 5 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Prevent Command From Repeating?

Jul 6, 2012

I am working on a lisp to scale drawings of various sizes to a predetermined size.  After the lisp has run and scaled the drawing, the prompts for base point and reference point run a second time.  How can I get this to run through once?  I think it has something to do with the way the reference length is being entered.  The base point and first reference point are the lower left corner of the drawing, while the second reference point is the lower right corner.

(COMMAND "SCALE" "ALL" "" (SETQ A (GETPOINT "
SELECT BASE POINT :")) "R" A
 (GETPOINT "
SELECT REFERENCE POINT : "))
  "1'-5"")

View 7 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Command Alias Transfer?

May 23, 2012

Most efficient way to transfer my custom pgp commands? I'm constantly moving between different computers and autodesk versions.

I used to just be able to overwrite the acad.pgp file in the support directory but this doesn't seem to work in the newer versions and I'm hesitant to continue like that in case their are new commands introduced in newer versions that I don't know about then they'd be over written.

Is there anyway to include my command overrides (eg. c=copy) in my back up cui file?

View 4 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Cancel Command With Reactor

Nov 24, 2011

It is possible to cancel a command using visual lisp reactors. If this is not there another way I could do that. I tried to use UNDEFINE but it works only with own CAD ​​commands and not with Visual Lisp command.

View 1 Replies View Related

AutoCAD Visual LISP / AutoLISP :: How To Add Text To Command Line

Nov 18, 2013

I have a custom command that I can initiate (c:TxtE).  The function starts running but I need to begin adding several inputs at the command line following this.  (ex:  "4" "all" "" "oldtext" "newtext").  How do i do that within lisp once the custom command has already begun?  If I need to modify the function how would i pass all these as optional type variables?

View 7 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Creating An Export Command?

Feb 11, 2013

I am attempting to create a export command for our surveyors that deletes all there point layers and seal layer, then audits and saves the file before opening the etransmit command.

Below is what I currently have.I know there is a better way to do this, but it is above my programing skill right now.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SURVey export(defun C:SRVY () (command "-laydel" ; Delete Survey data "Name" "F0" "Name" "F1" "Name" "F2" "Name" "F3" "Name" "F4" "Name" "F5" "Name" "F6" "Name" "F7" "Name" "F8" "Name" "F9" "Name" "F10" "Name" "F11" "Name" "F99" "Name" "SHEET-SEAL" ENTER "YES" ) (command ".audit" "y") ; Audits file (command "_qsave") ; Save changes (command "-etransmit" "Choose Setup" "ACAD2010" "Create transmittal package" ) (princ))

AutoCAD Civil 3D 2012 (Primary), 2011 by contract.

Dell Percision T3500: MS Windows 7 64-bit SP1; Intel Xeon CPU W3505 @ 2.53GHz, 12.00 GB RAM, NVIDIA Quadro 600

View 1 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Command / If Layer Is Frozen

Mar 29, 2012

I have a  Layer named "Arch - Niveau 1".I would like to enter in the command prompt  "a1"..It would read if the layer is frozen or thawed and if it is frozen, it will thaw it?

And if the layer is thawed, it would freeze it..What could be added is: To check up if the layer exists and if not, create it.Would do the same for 2 other layer named "Arch - Niveau 2" command "a2"   and  "Arch - Niveau 3" command "a3". Is it clear?Now the lisp I've found and modified is this:

(defun c:a1 (/ lay ldef flag) (setq layn "Arch - Niveau 1") (command "_.LAYER") (if (not (tblsearch "LAYER" layn)) (command "_Make" layn) (progn (setq ldef (tblsearch "LAYER" layn) flag (cdr (assoc 70 ldef))) (and (= (logand flag 1) 1) (command "_Thaw" layn)) )) (command ""))
 This lisp looks if it exists, if not, create it and only thaw the layer.

I'm not enough familiar with the "not", the "progn" the "flag", "and" and "logand"  (!!!!)

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Command Line Variable

Feb 7, 2013

Somehow, I manage to turn of one variable that display errors on command line.

For example:

(seq a 6)

suppose to return, on command line, something like:

error no function definition: SEQ

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Command Message On Loading

May 25, 2012

I was wondering if there is a way to have a message such as the following show up when a lisp routine was loaded using "Load Application" in ACAD?

1) Load Application "ZAP"
2) lisp routine is successfully loaded and the message "Type ZAP at the command line to initiate ZAP routine" 

View 1 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Clear All Setq At End Of Command

Aug 30, 2013

Is there a way to clear all the SETQ at the end of the command

View 4 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Convert Variable To Command Name?

Mar 12, 2012

I am trying to shorten my code by using the variable as the command name. Is that possible to do?

;; instead of this(cond ((eq USER_INPUT_ANSWER "blk-cdtree-01-06")(C:blk-cdtree-01-06)) ((eq USER_INPUT_ANSWER "blk-cdtree-01-08")(C:blk-cdtree-01-08)) ((eq USER_INPUT_ANSWER "blk-cdtree-01-10")(C:blk-cdtree-01-10)) ((eq USER_INPUT_ANSWER "blk-cdtree-01-12")(C:blk-cdtree-01-12)));; do something like this(C:blk-cdtree-(substr USER_INPUT_ANSWER 11))

View 8 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Alias With Custom Command

Mar 6, 2013

I'm trying to get familiar with AutoCAD. Google and didn't manage to solve a problem :

In AutoCAD LT 2013, I created a custom command called Special fillet :

Name : Special filletDescription : Round a polylineCommand display name : SFILLETMacro : ^C^C_fillet;p;r;0.1

I created two aliases at the end of acadlt.pgp :

SF,         *SFILLET
C,          *COPY

When i type C, it works fine (just a test) but although it appears correctly in the Command prompt, SF doesn't work and it keeps telling me : UNKNOWN COMMAND "SF"

Last thing, if I create an icon in a toolbar with the special fillet command : it works fine...

View 7 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Ribbon Polyline Command

Jul 29, 2013

Creating a ribbon for Partial Customization files in the CUI, and I am trying to setup some buttons for existing polylines for example underground electric and overhead electric. When writing the macro what are some ideas for creating a polyline with the proper linetype for that particular object rather than changing the layer in layer properties dialogue.

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Run Command According To Multiple Choice

Oct 7, 2013

For example :

command is beginning with choices

1- choose number ... ( 10 / 20 / 30 ) :

2- choose color ... ( red / blue / cyan ) :

after choices if 1.st choice is 10 and 2.nd one is red , then run to AAA command

after choices if 1.st choice is 20 and 2.nd one is blue , then run to BBB command

after choices if 1.st choice is 30 and 2.nd one is cyan , then run to CCC command

simply like that..

View 3 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Find DXFIN Command Code?

Sep 22, 2011

Where I can find the DXFIN command code? I want to examine it to see how it does what it does.

View 2 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Creating Menus In Command Prompt?

Nov 22, 2011

I am able in lisp to create a command prompt selection menu, easy (see code below).However what I want is for the lisp to be ready to undertake an action UNLESS I select an option.

An example is the offset command wich has a function ready to roll (namely the specify offset distance) "OR" I can interrupt the "specify offset distance" and enter one of the sub options (in the case of offset Through/ Erase/Layer).

My code attempts to offset also, UNLESS the user wishes to specify a distance.
 
(DEFUN C:loadoffset ();CREATING MENU FOR SUB COMMANDS [GETIT] [GOTIT]...(setq choose (getstring "
Select an option... [1=GET DIST] [2=GOTDIST]: "))(if (or (equal choose "1"))(GETIT))(if (or (equal choose "2"))(GOTIT));TERMINATING SELECTION MENU...)(defun getit ( gotit )(setq MYDIST (getdist "
SELECT A DISTANCE: "))(gotit))(defun gotit ()(command "_offset" MYDIST pause pause"exit"))

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Undo Option Like In The Line Command

Dec 11, 2012

in this command how would you put the Undo option on there erase the last line and if you want to keep eraseing the lines

(defun c:gls ();keeps drawing guide lines at any angle
(setq an (getangle "
Pick an Angle:"))
(foreach pt '(a)
(while (set pt (getpoint "

[Code] .....

View 9 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved