AutoCAD Visual LISP / AutoLISP :: Program To Evenly Space Objects Across Given Distance
Dec 28, 2013
I would like to write some sort of AutoLISP program to evenly space objects across a given distance. I have attached a .pdf file showing what exactly I mean.
I would like the program to enable me to either enter or measure (via the selection of two points) the "z" distance, to enter or measure the "y" distance, and to enter the number of objects, "n". I would then like the program to evenly space "n" objects across the "z" distance.
A program like this is, I have to be honest and say, way beyond my current capabilities.
Perhaps some initial guidance to get me going?
View 6 Replies
ADVERTISEMENT
Feb 14, 2013
Is there a quick way to simultaneously delete all objects in a layer if these objects are found across several layout tabs and model space?
At the moment, I'm getting the objects using: (setq a (ssget "X" '((8 . "Revision"))))
This finds all objects in the drawing, but if I just use: (command "_.erase" a "")
to delete them, only the the objects in the current layout or space are getting deleted...
View 2 Replies
View Related
Feb 25, 2013
Without opening the drawing...
How can I iterate through and check the object type of all objects in model space? And... then delete them if they are certain types... like lines, circles, polylines, text, mtext, etc?
View 2 Replies
View Related
Jan 13, 2013
Lisp routine that divided up a normal square / rectangle room and insert a block at each given point.
At present if the room was to have four lights width ways and three lights length ways we would divide the width by eight to give us 1/2 1 1 1/2 so the lights would be placed on every second point after the divde command (dividing the room by twice the amound of lights needed).
View 9 Replies
View Related
Sep 18, 2013
I need a lisp that creates a polygon of N points, so to enter a only the distance between these points, after choosing N points in the drawing for approximately creating polygons.
View 7 Replies
View Related
Sep 10, 2012
There are times that I have a really long curb polyline that has both line and arc segments. I wish to pick two points along that polyline and have it give me the distance between those two points along the path of the polyline.
Do we have this ability natively? Have I been missing something all this time? Normally I have to make a copy of the original entity, ... break, break, list erase or undo....
View 6 Replies
View Related
Feb 21, 2013
I would like to eliminate a mouse click in my program. I use getstring to allow the user to either enter in an integer or a distance used for labeling in a drawing, but I could eliminate the need for the user to then click an option that completes the label if I only knew how to determine if the entry is an integer (such as 5 or 15) or a distance (such as 24" or 36").
View 9 Replies
View Related
Nov 5, 2013
I've tried doing a block that automatically updates the X and Y coordinates from its moveable leader. I can get it to work in model space or paper space. But my problem is I want it to work in PS, but update with the MS coordinates through the viewport.
I can get it to update, by LISP, by picking a point and passing the points to the blocks attributes. At the moment I have a LISP when actioned it locks the viewports, activates the viewport, and asks you to select a point. Once selected it de-activates the viewport (going back into layout tab) then asks which block you want to update. Where you now select the block and it updates the coordinates. I.e. manually pick the point in MS, switch to PS and then manually pick the block. Then I have to manually modify the leader to the correct location.
I'm hoping that I can (In PS) move the end of the leader to snap to a position in MS and the coord updates to reflect the correct MS coordinates. I'm thinking that maybe this can't be done automatically and that I maybe can move the leader but I'm not sure how I can do it without running a LISP to update the block?
I'd be happy moving the leader then just running a single command and the leader coordinates updating without having to select the points and the block again.
I've attached the block showing the auto update of the attributes (fields).
View 9 Replies
View Related
Dec 30, 2011
I am using the following routine definition then calling the different view poins from a pop up menu.
Each time I switch veiw points it drastically zooms out. I would like to maintain the "zoom distance" if there is such a thing when switching views.
Ideally, like when in 3dorbit, I would like it to swing views around similar to that but to the defined viewpoints as below....
(DEFUN V (inp) (setq inp (strcase inp))
(cond ((= inp "T") (SETQ IXY 270) (SETQ FXY 90)) ((= INP "F") (SETQ IXY 270) (SETQ FXY 0)) ((= INP "RE") (SETQ IXY 90) (SETQ FXY 0)) ((= INP "L") (SETQ IXY 180) (SETQ FXY 0)) ((= INP "RI") (SETQ IXY 0) (SETQ FXY 0)) ((= INP "URI") (SETQ IXY 0) (SETQ FXY 45)) ((= INP "UL") (SETQ IXY 180) (SETQ FXY 45)) ((= INP "UF") (SETQ IXY 270) (SETQ FXY 45)) ((= INP "URE") (SETQ IXY 90) (SETQ FXY 45)) ((= INP "URF") (SETQ IXY 315) (SETQ FXY 35)) ((= INP "URR") (SETQ IXY 45) (SETQ FXY 35)) ((= INP "ULF") (SETQ IXY 225) (SETQ FXY 35)) ((= INP "ULR") (SETQ IXY 135) (SETQ FXY 35)) );COND (COMMAND "VPOINT" "R" IXY FXY) );END V.LSP
View 3 Replies
View Related
Aug 8, 2013
Let's say I have a 3D polyline, which I turn into a spline. I then want to determine how closely the original polyline and spline follow each other. How I can check this programmatically? The concern is to find the maximum deviation and its location.
Howto be able to run the check on other types of objects as well: arc, polylines etc.
View 6 Replies
View Related
Jan 9, 2014
I have double line pipe drawings but i have to change distances between of this lines in entire drawing and i was thinking that maybe there is a lisp code which can create new double line according to my specify dimensions ...
example :
Distance between lines : 100 mm
------------------------
------------------------
here is what i want to do :
1. select double line
2. specify new distance ( for example 200 mm)
3. lisp will create center line middle of the selected lines ( maybe it can ask me that this center line will be permanently or not )
4. lisp will create new double line from this centerline according to my specific distance
5. new double line layers will be the same with selected old double line
and this lisp has to work for double arc or quarter circles too.
View 7 Replies
View Related
Jun 13, 2013
I have a lisp program which will create a cover sheet for my electrical drawings by extracting data from the title block. Once this is done, I manually print the cover sheet.
What I would like is to create the cover sheet, have the lisp program pause, print the cover sheet, then when printing is done, quit the drawing file so the cover sheet does not remain.
I tried several approaches, but the lisp program finishes before the cover sheet prints.
View 1 Replies
View Related
Feb 28, 2012
Is there anyway to program variable names?
What I was thinking of was in a loop some times I need multiple sets of similar variables but am not sure how many sets I am going to need. I would like to be able to increment the variable names each time the loop runs.
View 2 Replies
View Related
Oct 21, 2013
I have an AutoLISP program that hangs up for no apparent reason. I can run the program with an Alert in the loop. The program is a sheet generator, creating a border (insert with attributes), dimensions and MultiLeaders in Model Space, then a new Layout Tab is generated and the new elements are CHSPACEd into the new layout. An Alert temporarily halts the program once the task of a new Layout is created. In this form, the program works as designed. However, if I comment out the Alert, the program hangs up as if in an infinite loop. Also, hitting Escape does not cancel the AutoLISP, I must use Task Manager to end AutoCAD instead. My computer was recently upgraded to Win7 64-bit. I'm running 64-bit versions of software. (AutoCAD MAP 2011).
View 4 Replies
View Related
Oct 13, 2011
Have an AutoLisp program that inserts a block with attributes. Been using it forever. Yesterday I ran the program and somehow when the block is inserted, it skips the Y scaling factor. The program should insert a block at a point with a X scale of 19.2, Y scale of 19.2, Rotation at 0 and then four attribute values.
What is happening is the block is inserted at the correct point and X scaling factor, but the Y scaling factor goes in for the Rotation angle (19.2 degrees), the Rotation angle goes in as the first attribute and the remaining attributes are shifted over and the last attribute is missing.Line of code is:
(command "INSERT" "CNVTAG" inspt scl scl 0 text1 text2 text3 text4)
The command prompt displays:
Command: (command "INSERT" "CNVTAG" inspt scl scl 0 text1 text2 text3 text4)
INSERT Enter block name or [?] <NEWWHDBORD>: CNVTAG
Units: Inches Conversion: 1.0000
Specify insertion point or [Basepoint/Scale/Rotate]: Specify scale factor <1>:
19.20000000000000
Specify rotation angle <0>: 19.20000000000000
Enter attribute values
Conveyor number: 0 Conveyor Speed: 5315-BCS Motor Horsepower: 1.5hp Release
Mode: 45/90fpm
I looked at the system variables INSUNITS, INSUNITSDEFTARGET and INSUNITSDEFSOURCE AND THEY ARE ALL SET AT 0..Currently using AutoCAD 2010.
View 3 Replies
View Related
Feb 12, 2013
I'm try to write a list to produce a script file!I just want to insert a dwg file in current drawing.back to MS Windows, in case of having [space] in a folder's name, we should use "" marks:
CD "Program Files"; DEL "file 10.txt"; ....
I tried both with and without "" marks but I failed!I pasted part of my code below with result of each case:
(setq TBFile "H:z.autocadA1 A2 A3.dwg")
(write-line "-INSERT" des)
(write-line (strcat "*" TBFile) des); ; *H:z.autocadA1 A2 A3.dwg <<=should be this
(write-line "0,0" des);;insert point
(write-line "1" des);;xyz scale
(write-line "0" des);;rotation
[code]....
View 4 Replies
View Related
Apr 25, 2013
In my drawing I have lot of MTEXTS having unwanted spaces in between the text strings.
A lisp to remove space from MTEXT. Here i am attaching sample drawing with MTEXT which is to be modify. Magenta color MTEXT need to modify like yellow color MTEXT.
View 6 Replies
View Related
Mar 19, 2013
have a simple lisp (no v.b.) program that changes the color of m-leader lines in acad 2010?
IV 2010 Suite
Digital Storm PC:
EVGA & Intel components
Win 7 Pro 64 bit
View 9 Replies
View Related
Jun 26, 2013
Is it possible to write a program for cross section by manual input of data like below. Objective is to draw a cross section with grid lines and labels of section data and datum value.
Program will ask for :
Datum value ?
Grid line spacing ?
Datas are :
Section Left
Chainage 5 Section value : 12.5
10 13.5
20 5
23.7 3
and so on.....
Section Right
Chainage 5 Section value : 8
10 13.5
20.5 15
25 3
30 14
and so on.....
View 3 Replies
View Related
Oct 17, 2011
Is it possible to get the output from the MEASUREGEOM command back into an VL program?If I use:(setq angle (command "MEASUREGEOM" "a" line1 line2 "x"),
the value of the angle is displayed on the screen but is not passed back into the program and the variable "angle" is not set.Is there a way that I can set this variable?
View 1 Replies
View Related
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
Dec 9, 2013
I need to count the blocks in paper space automatically. Is there any method or lisp for this.
View 7 Replies
View Related
Feb 7, 2012
I'm trying to create a macro for a toolbar button to open a third party program. Basically we want to open a custom .exe application from a button on the ACAD toolbar.
View 5 Replies
View Related
Oct 25, 2013
This seems absolutly silly.
(setq p1 (getpoint))
(setq p2 (getpoint))
(setq Dist (distance p1 p2))
Why does this not work?
I'm trying to build a command to replace AutoCAD's "DI" command, to give distance and delta x, y, and z values in decimal and imperial, and keep the angles in XY plane and out of XY plane.
View 9 Replies
View Related
Oct 9, 2012
Any code that will select all xrefs in modelspace and bind (insert) them?
the -xref bind command requires explicit names and if I use * it will also bind my titleblock xref in paperspace which I want to avoid.
View 9 Replies
View Related
Jul 9, 2013
I have code that will set and sae a current UCS to the front of an entity, of course, depending on the viewpoint. This is so, because we need all draft lines in front of 3D solids, such as dimensions, leaders for labels, text entities and so on (the reason for not putting these entities in paper space is another discussion ).
But I'll have on of two problems on numerous occasions:
1. The user forgets all together to run the command.
2. The user will pick the wrong entity that is in the foremost position in that view.
The code I have utilizes the following:
(setq ent (car (entsel)))
(vl-load-com)
(setq obj (vlax-ename->vla-object ent))
(vla-getboundingbox obj 'LowerCorner 'UpperCorner)
(setq LowerC (vlax-safearray->list LowerCorner))
(setq UpperC (vlax-safearray->list UpperCorner))
Then I'll analyze the X, Y and Z of both the lower and upper corners, and set my UCS to whatever is proper.
Is there a "LowerCorner" and an "UpperCorner" for all entities. I can't see "VSMIN" and VSMAX" working because the elevation of the returned coordinates is always "0,0"
View 4 Replies
View Related
Aug 21, 2006
Routine to build a legend in paper space
I am looking for a routine or app to pull existing MS legend symbols (inserted from the block library) from the drawing and automatically place them in a PS legend. Since I don't have a large screen and sometimes miss a symbol before running a test plot, I wish to automate the process.
I am looking for a way to populate a paper space legend with blocks inserted into the drawing for Land Desktop 2005, 2006 drawings.
I also have to replace non-conforming architectural blocks with my own, then build the legend from all drawings tabbed in the drawing file (possibly all xref drawings as well).
I liked your article on 'Selectively writing drawing blocks to any folder using VBA'. I need to brush up on my VBA 6.0 and learn VB.NET. Perhaps your code can be modified to do the task, and this would be useful to many other designers in a further article.
View 9 Replies
View Related
Jan 2, 2014
Any routine for changing color of AutoCAD background in model space. As for changing background color we have to follow four steps namely as follows:-
1. Execute OP
2. Go to display tab
3. Go to color tab
4. Change color
A tool that directly calls the model color shall be highly beneficial.
View 3 Replies
View Related
Jan 24, 2013
Is there a way by which I can link a paper space block attribute to model space block attribute
In other words
Paper space as a block Title and attribute "QTY"
Model space has a block X and attribute "QTY_MODEL"
Is it possible to edit "QTY" and as a result get automatic update on "QTY_MODEL"
I am not familiar with diesel/macros yet in Acad.
Config :: Intel (R) Xeon (R) CPU E31245 @ 3.30 GHz, 16.0 GB, 64bit win7
Inventor 2013 and Vault Basic 2013
View 4 Replies
View Related
Jun 28, 2012
Is there a way to get model space to "display plot styles" through a lisp routine or a script?
i'm currently setting up a whole bunch of custom tool palettes for the company I work for and instead of the icons displaying in their actual colour (at the moment they're green, which doesn't show up very well on the light grey background), I'd rather they show in the plotstyle assigned to the individual dwg's.
call up the page setup manager (while in model space) and click modify, you can then check the radio button to "display plot styles" in the top-right corner. But when you have around 100 - 200 blocks to change, that process can be rather time consuming and cumbersome!
View 3 Replies
View Related
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