AutoCAD Visual LISP / AutoLISP :: How To Loop Based On Number Of Selected And Filtered Objects

Jun 13, 2013

I am looking for a way to extract (filter) all polylines, and loop a lisp based on the number that are found within a "W" selection window.I am frustrated getting "malformed list" or errors, even after defining "n" for repeat.The code I have so far looks like this:

(defun cWW (/ p1 p2 sspw myObj ss)
(setq p1 (getpoint "
Pick first corner: "))
  (setq p2 (getcorner p1 "
Specify opposite corner: "))
  (if
   (setq sspw (ssget "W" p1 p2 '((0 . "*POLYLINE")))
 [code].....

Without the (repeat () portion, it was working ok with selection window, however it only would run the commands for a single polyline.  What needs to be done without overhauling the code?  The lisp has worked on a drawing-wide basis, however needs to run on only on user-windowed polylines since there are other polylines within the drawing which are attached to layouts via viewports. 

View 9 Replies


ADVERTISEMENT

AutoCAD Visual LISP / AutoLISP :: Assign Variable Based On The Number Of Characters To Be Removed

Apr 1, 2013

(defun layun (target_obj / original_layer original_layer_info target_obj_atts new_layer )(setqoriginal_layer (cdr (assoc 8 (entget target_obj)))original_layer_info (tblsearch "layer" original_layer)target_obj_atts (entget target_obj));setq(if (or(wcmatch original_layer "*-P123"); REMOVES 4 CHARACTERS(wcmatch original_layer "*-P123456"); REMOVES 7 CHARACTERS(wcmatch original_layer "*-P123456789"); REMOVES 10 CHARACTERS );or(progn(setq new_layer (substr original_layer 1 (- (strlen original_layer) ??))) ; NEED TO ASSIGN VARIABLE TO MATCH THE NUMBER OF CHARACTERS TO REMOVE(if (not (tblsearch "layer" new_layer))(progn(entmake ;;;begin to make new layer(list'(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord")(cons 2 new_layer) ;;; layer name(assoc 6 original_layer_info) ;;;re-use original linetype'(70 . 0) ;;;flags - use default flags(assoc 62 original_layer_info) ;;;re-use original color);list);entmake);progn);if(entmod (subst (cons 8 new_layer) (assoc 8 target_obj_atts) target_obj_atts)));progn);if);defun

assign a character where ? is shown so that it matches with the number of characters to remove based on the 3 lines above (see wcmatch lines).  At present, whatever number I replace that ?? with, it removes that number of characters from the layer that I selected (if it meets that WCMATCH criteria).  Another option which may be more difficult is to be able to have the routine look at the object layer and if it contains -N- or -D- or -NEW- or -DEMO- then to remove all the characters that follow these layer modifiers.  This way I can cleanly add another project modifier behind these modifers. 

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Select Dynamic Block Based On Previous Selected Point

Apr 9, 2012

For a program i am working for i have to extract the base point of a dynamic block.

This can be done perfectly by this function:

(cdr (assoc 10 (entget (car (entsel)))))

But i want the entity selected based on a previous slected point. So for example when i selected pt1 (which is a point at the border of the dynamic block) i want to be able to extract the base point on the block whit this point.

View 8 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Larger Routine To Create And Rotate Text Based On Object Selected

Dec 29, 2011

the expression in question is part of larger lisp routine to create and rotate text based on the object selected and the viewtwist variable (we use dview twist to rotate our views when needed)

So the expression in question:
(< (/ pi 2) ang (* pi 1.5)
where ang is the total angle used to determine proper rotation of the text.

Now the problem. In most cases where ang = 90 (or 1.5708 radians) this works fine. the two exceptions i have encountered

in testing are a line at 70 degress, viewtwist 20, and line at 50, viewtwist 40. For whatever reason at these two conditions the expressoin evaulates True instead of nil and rotates the entire text object incorrectly (180 degrees). So question is how exactly is this being evaluated? i know its comparing ang (* pi 1.5) to (/ pi 2). is there some sort of rounding error? or maybe the expression needs a wee bit more definition? attached image and full lisp routine for reference of what is happening, blue text is angle of the line as created by routine at viewtwist 0.

View 1 Replies View Related

AutoCAD Visual LISP / AutoLISP :: New Layer For Selected Objects

Jan 1, 2014

I need a LISP that create a new layer and ask me for the name and the other properties (color,lw,lt..).

ask me if I want move the selected object for the new layer (yes is the default value)

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Detect If There Are Objects Selected

Oct 18, 2012

Any way to detect of there are objects currently selected using Autolisp, visual lisp or even VBA. I would like to be able to do something using that as a conditional, so that (assuming the hypothetical variable isSelected is an on/off indicator of whether or not something is selected) I can code something like this:

(if (isSelected) (...))

View 4 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Move Selected Objects By Value Of Their X Or Y Properties

Nov 23, 2012

I need a program to move some selected text to a line something like as extend command but for text objects!

suppose that there is a horizental line (y=constant) or vertical line (x=constant) and some selected text(or other objects), I want a lisp program that move these selected text (or objects) by their "insertion point" to this line.

in other word, if the selected base line is horizental (y=constant) then property of "Y" of all selected text should change to line's "Y"; and if selected base line is vertical (x=constant) then value of "X" of all selected text should match to line's "X" value.

for example, for base vertical line (x=constant) and 3 selected text(or can be any object) result is:

text1.          |                        text1.|

  text2.        |         ===>       text2.|

    text3.      |                        text3.|

|  .text1                                 |.text1

|    .text2                ===>       |.text2

|      .text3                             |.text3

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Smallest Rectangle Enclosing Selected Set Of Objects

Feb 27, 2013

How can I draw a The smallest rectangle enclosing for a selected set of objects in current drawing?

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Move Objects To New Layer Based On Their Present Layer

Jun 20, 2012

Say I have 2 items, one is on layer "M-Duct" and the other on "M-Pipe" (they are in the same drawing). Any lisp routine that would create the layers "M-Duct-New" and "M-Pipe-New" (based on the same color and LT as the original layers) and then move those objects to the newly created layers?

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: While Loop With Prompt

Nov 19, 2013

I am trying to put together a loop to enter a number greater than the previous number entered. Below is my mockup and I just cannot get it.

(defun c:22 () (while (setq d (getreal "
Specify diameter: ")) (setq $d d) (while (if (<= d $d) (progn (prompt "
Specify greater diameter.") (setq d (getreal "
Specify diameter: ")) ) ) ) (setq p1 (getpoint "
Specify point: ")) (command "CIRCLE" p1 d) ))

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Add Nil - Stop While Loop?

Oct 22, 2013

I am have trouble trying to figure a couple of things in the following code.

First - in the IF statement if "SD" is >= ask "Specify LAST strata number". How do I add nil?
Second -  After I "Specify the LAST strata number", How do I stop the loop?
 
(defun C:22 () (setvar 'osmode 0) (or $S (setq $S 10)) (setq S (getdist (strcat "
Specify scale [Inches equal a Foot] <"(rtos $S 2 2)">: "))) (if (= S nil) (setq S $S)) (setq $S S) (or $BD (setq $BD 7)) (setq BD (getdist (strcat "
Specify boring depth in feet <"(rtos $BD 2 2)">: ")))
[Code] ........

View 2 Replies View Related

AutoCAD Visual LISP / AutoLISP :: While Loop And User Defaults

Apr 25, 2012

I have a little LISP I have been working on that creates a text object as a "label" for 2D ductwork our company does. It makes a field for the mlinescale as the duct width, combines with user input for duct depth, and prompts user for location to place the text. The routine is functional...however, I would like to tweak two things that I cannot figure out.

First, I would like the command to continue until the user escapes, similar to the "multiple" command in AutoCAD. I have tried adding a while loop to the majority of the routine..which works until the user escapes...then my error handler undoes everything.

Second, when asking for user input, is it possible to ask for user input without a default the first time, but thereafter remember the input as a default?

Below is the code in question...not including error handler, etc. :

(if (= ducttemp nil)(setq ducttemp 12))
(initget 6)
(setq ductdepth (getint (strcat "
Enter duct depth in inches <" (itoa ducttemp) ">, or Esc to end: ")))
(if (= ductdepth nil) (setq ductdepth ducttemp) (setq ducttemp ductdepth))

[Code] .........

View 4 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Unable To Get Out From While Loop If Press Enter

Jun 18, 2013

I am just a begineer for auto lisp.  I wrote my first program, but got stuck,  I am unable to get out from while loop if i Press "enter".

(defun c:arsh ()
(while
(setq p1 (getpoint "
pick point :"))
(setq l 1500)
(setvar "osmode" 0)
(initget 7)
(setq p2 (polar p1 (dtr 0) l))
[code]....

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Loop File Names In Command Prompt?

Dec 6, 2012

I have a parent directory with x-amount of folders contained inside. I say X-amount because I would like to keep adding or deleting folders as time progresses. I want the folders contained within this parent directory do be read into a lisp variable and then be printed to the command prompt till every folder is displayed by name, then the loop may stop.

View 5 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Program Loop To Draw Lines With Rubberband

Oct 4, 2012

i am writing something that will draw consecutive lines with a rubberband to be used as a leader from a block's insertion point.  this:

(WHILE
 (SETQ LN (GETPOINT "
Select Next Point (ENTER to Finish) : "))
 (COMMAND "LINE" (GETVAR "LASTPOINT") LN "")
)   

works, but does not include the rubber band.  i tried:

(WHILE
 (SETQ LP (GETVAR "LASTPOINT"))
 (SETQ LN (GETPOINT LP "
Select Next Point (ENTER to Finish) : "))
 (COMMAND "LINE" LP LN "")
)   

which includes the rubberband, but will not exit the loop. The last break source in VLIDE shows that  

(GETPOINT LP "
Select Next Point (ENTER to Finish) : ") is casuing an error.  Placing
 (SETQ LP (GETVAR "LASTPOINT"))

 outside the loop causes all lines to be drawn from the same point rather than the endpoint of the previous line. 

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Create Text Based On Room Dimensions?

Dec 19, 2012

make a LISP that will work with my room dimensioning? I'd like to be able to specify the width and depth of the room using a command similar to the "dist" command, and then click a point to place a text based on the distances gathered. I'd also like the text to be formated into architectural units and displayed like this: 12'-0" X 13'-5". Also, if possible, round the result to the nearest inch (to avoid 1/2" and 1/4" dimensions).

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Change Block Layers Based On Attribute Name Tags

Oct 11, 2011

What I am trying to do is grab the value of the owner tag (of which there are four), and use that value to determine which layer to place it on.  What it seems to be doing is hanging.

Here is what I have so far:

(setq SSBlks (ssget "x"'((0 . "*INSERT"))))
(while (/= (sslength SSBlks) 0)
(setq w(sslength SSBlks) V 0)
(setq attentity (ssname SSBlks 0))
(setq attname (entget attentity))
(setq cntr 0)
(while (< V cntr)

[Code] ......

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Open Excel Program And Count Cells Based On Colour?

Jul 30, 2013

Is this something that is possible? Basically I have an excel file with sample data that comes coded (red background for fail, Green for pass) Then we transfer that into halos on a DWG. got a routine to count the halos in a DWG. Now I was thinking it would be nice if it compared the number to the excel file to make sure no mistakes were made when placing the halos.

So as I mentioned I've seen rountines to read data in cells but none to count cells based on colour.

View 8 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Routine To Activate Alert Window Based On Drawing Timer

Jun 19, 2012

I was interested in finding out if it's possible to write a LISP routine that would execute a pop-up dialog box say every 30 minutes.  This is strictly for ergonomic reasons to remind the user to take a pre-determined break.

I am not an expert code writer by any means, but I imagine the routine would autoload and resetting the timer to 0 upon opening a particular drawing file.  The LISP routine would then run in the background and run the (alert "") command when the timer reaches 30m 0s.  When the user presses the OK button, the timer resets to 0 again.

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Conversion Of Base Routines To Diesel MACRO Based Routine

Jul 3, 2012

" Convertion of AUTOLISP base routines to Diesel MACRO based routine to be used in a AUTOCAD LT based platform "

Here i am attaching the lisp file for ready reference.

View 1 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Number Of Layouts In Another Drawing

Oct 4, 2013

As you smart individuals can figure out, we do up drawing packages for construction that consist of several drawings, hundreds of drawings, for several modules of construction.  Our process usually consists of one layout per drawing, so that the lisp guy can do a drawing count and put in sheet numbers based on how I manipulate the list of drawings in the one directory folder.

Now I have a client, despite the way we currently do things, requires that about 70% of the drawings will have multiple layouts.  Now we're back in the stone ages, manually putting in sheet numbers, eating up our budget for this contract.

View 4 Replies View Related

AutoCAD Visual LISP / AutoLISP :: BIOS Serial Number

Feb 13, 2013

I know that in the MS Windows' "command prompt windows" I can type:

WMIC BIOS GET SERIALNUMBER

to get BIOS serial number. so how can I get it with LISP?

View 3 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Multiply By A Number Of All Element

Jul 7, 2012

I have a list and i want to multiply by a number all the element how is it possible with Mapcar

View 2 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Selected Text(s) To CSV Files

Nov 14, 2012

I need a LISP program that prompts: "select text(s)" then I select for example 100 text in open drawing file.

after that this program creat a file (LIST.CSV) and write each selected text in line by line of this file:

result text file (LIST.CSV ) should be:

Text1

Text2

Text3

...

...

Text99

Text100

 ofcourse Text1 is the content of a text object.

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Have Arrow Leader Convert To Loop Leader In One Click

Jun 1, 2006

Is there a way to have the Arrow leader convert to Loop leader in one click. Our company standards use diamond tags and sometimes i have to change the arrow to loop by inserting a leader.

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Next / Previous Sheet Number Field

Sep 21, 2006

The Field dialog box has an item for CurrentSheetNumber with field expression: %<AcSm Sheet.Number>%

Is it possible to create a Field to display the Next Sheet Number (CurrentSheetNumber + 1) and a Field to display the Previous Sheet Number (CurrentSheetNumber - 1)?

View 1 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Prompt Text / Mtext Not Selected

Nov 13, 2012

I’m trying to put together a loop for if nil or something other than text or mtext is accidentally selected than prompt text was not selected. This is what I have so far.

text or mtext is not selected than prompt

(defun C:ww ()
(while
(not
(and
(setq esel (entsel "
[Code]......

View 7 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Show Difference In Selected Text?

Jan 17, 2013

I have a little routine to add two selected numerical texts together and show the result at a selected position. I am using the entsel method to select them. I would like a way to highlight the selected text temporarily. Is this possible. The routine is as follows.

(defun c:T+ ( / Txt1 Txt2 Txt3 Pkt )
 ;Adds second selected number to first
 (setvar "dimzin" 3)
 (setq curlay (getvar "clayer"))
 (setq curcol (getvar "cecolor"))
 (setq curlin (getvar "celtype"))
 (setq ds (getvar "dimscale"))

[code]....

View 3 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Add Attribute To Selected Blocks (XY Coordinates)

Nov 30, 2012

i have found the following lisp in a previous thread: (shows XY coordinates of the selected blocks)

(defun C:MyFunc (/ ss Index Ename Lst)
(while (or (not ss) (= 0 (sslength ss))) (setq ss (ssget '((0 .
"INSERT")))))
(if ss

[Code]....

I want this information to be added to the blocks as hidden attributes so that i can extract them by attout. The work to be done is : attout to excel, autofill an attribute (numbering) then attin.

but my problem is that i cant think of a way to number those blocks IN ORDER (ie top to bottom or left to right) unless by sorting them in excel first by their x or y coordinates

View 9 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Adding A Text To Selected Texts?

Jan 24, 2013

I need a LISP program to add a text given by user to all selected text.

in other words:

1- user selects some texts.

2- user give a text to program.

3- Program added this text to all selected text.

selected text: text1, text2, text3,text4,....,textn

given text by user: _xyz

Result:

text1_xyz, text2_xyz, text3_xyz,text4_xyz,....,textn_xyz

View 6 Replies View Related

AutoCAD Visual LISP / AutoLISP :: Change All Selected Hatches To Solid?

Apr 1, 2012

I need to convert a lot of different hatches to solid hatches.

I haven´t found a way to do it in Autocad 2012.

script that cycles to all selected hatches and change the properties to solid?

View 4 Replies View Related







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