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.
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....
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").
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.
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.
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.
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.
How to edit this string so that it would change ONLY XREF layers in a dwg. to color 3 bylayer, and leave all of my additional layers in the current dwg. as is.
Is there a way to force a setting in a PC3 file?We have one set up to print rotated and sometimes for whatever reason it changes back to Auto for the rotation. It's under Graphics of the Custom Properties I would like to write something that if a person plots with this PC3 that to rotation will be forced to 90 degrees.
Right now I have a few lines in the ACADDOC.lsp file to set up the plot stamp for all users. I would like to just turn on the plot stamp and auto load a custom .pss file that I have set up.
I need to create a command which could change a color of an allready existing selection set when activated. For example i have a command which creates a cube, where each specific group of lines were added to different selection sets. how can i recall any created selection set by its name and change its color?
How to change the Backgroundcolor of the Blockeditor with VLisp? I haven't found neither a SystemVariable nor somthing inside the AcadPreferencesDisplay object.
I am trying to speed up some basic drafting of text revisions. In the P (plumbing) we call out the fixture units for a water pipe, along with the fixture units, the pipe size changes.
Is there any way to add numbers in an attributed block? (I have a lisp that works on text & mtext, but not attributes)
1.1. Example: Like if you have a block with two attributed text fields, the 1st field {x} is a number (fixture unit), and the 2nd field {y} is a number (pipe size). I would want it to only add the 1st text fields. [If possible then change the 2nd text field according to a changeable chart. (see #2)]
1.1.1. This is how the block looks like: x (y") 1.1.1.1. x could be any number from 0.5 – 10,000 (only using 1 decimal place, and only as needed) 1.1.1.2. y could be any number from the following list: ½, ¾, 1, 1¼, 1½, 2, 2½, 3, 3½, 4, 5, 6
Is there a way like in excel that you can set up a formula that will give a numerical result depending on other input? Like pipe size that change depending on the number of fixtures. There would need to be two different formula, one for hot and one for cold values (The value would be set at the beginning of the job; typically these values would not change later in the job). This could be separate text or if possible using the attributed block as described in #1.
2.1. Example: Like if you have a block with two attributed text fields, the 1st field {x} is a number (fixture unit), and the 2nd field {y} is a number (pipe size). I would want it to change the 2nd text fields according to the value in the 1st text field. If the value in {x} is 0.5 – 1.0, it would result in ½; 1.5 – 7.0 = ¾; 7.5 - 17 = 1; 17.5 – 36 = 1¼; ect.
2.2. In excel it would be =IF(x)<1,"1/2",IF(x)<7,"3/4”,IF(x)<17,"1",…{all #’s in between} …IF(x)>5000,"6")))))
Once upon a time in a job far, far away I had a lisp routine that deleted the current page setups and replaced them with new ones imported from a template drawing. It's probably been a good 6-7 years since I found it the first time.
I am currently using this lisp routine to export selected objects as a dxf to import into another program:
(defun c:dxf () (command "_dxfout" (getfiled "DXF File:" "c:/dxf/" "dxf" 1) "_Objects" (ssget) "" ; completes selection "_Version" "2004" "16" ; non-default number or other option if desired, with followup line(s) if necessary ) (princ "2004 DXF Created") (princ) )
this saves the dxfs to a location of C:DXF
I would like it to save to a different location, the desired location is within the same root folder that the drawing is located in and is called "DXF-Programs-Releases"
How to edit the string below so that it will ignore all layer names starting with "E-". I want to change all XREF layers in the current dwg. to 161 but ignore all XREFED layer names that start with E- such as E-lighting, E-power etc.
What is the best way to change the color of two pieces of specific text in lisp? I want to change where it says (strcase ln6) & (strcase ln7) to the color of green. I tried it a couple of different ways but I'm having some trouble. First I am setting the current layer with a color of blue. I am then running the text command a couple of times. I want to run the mtext command a couple of times but I want the text to be green & I want the width factor to be .85
for my latest little project I'm trying to change layer settings depending on a entry in a sheet set attribute.
Basically, if the sheet set custom attribute entry is 'white' I want the colour of a specific layer displayed as 255,255,255, and if it's blue I want it changed to 0,0,255. So I can control the colours from a sheet set custom properties level.
And for it to check if the layer existing in the drawing, so it'll skip the process if it's not there.
The following snippit of code is changeing the color of text in a cell of an AcadTable. It will set the color to an RGB value and works great. But what if the color is a normal color 1 through 255 from autocad's pen table. How would I set the cell text color?
(setq objColor (vla-getcellcontentcolor eVLAMT R C)) ;sets a Color Object, whatever that is (vla-setrgb objColor RED GRN BLU) ;sets the new color of the Color Object (vla-setcellcontentcolor eVLAMT R C objColor) ;sets that new color object to the cell
Any lisp routine for changing the text width of all the attributes in a block globally. I want to change it from 1.0 to 0.8. I have attached a symbol where the attritube tags will be the same.
I am having trouble moving an object a certain distance. The distance is defined by a pre-defined variable. I just can't figure out the syntax for the autolisp command.
Here is the bit of code if written, there is more code not shared here that defines the points for the polyline .
;-- the varaible box_height is defined earlier in the routine
;-- Draw the polyline for the top of the cabinet (command "pline" p1tt P2tt P3tt P4tt P5tt P6tt P7tt P8tt "c")
;-- Assign the new part a variable name (setq cab_toppl (entlast))
;-- Extrude the polyline to make the top of the cabinet (command "extrude" cab_toppl "" cab_intw "0")
;-- Assign the new part a variable name (setq cab_top (entlast))
;-- Rotate the top of the cabinet down to the floor of cabinet
(command "rotate3d" cab_top "" 2 p1tt p2tt 90)
;-- Move the top of the cabinet to the final location
;-- HERE IS THE PART I'M HAVING TROUBLE WITH. ESSENTIALLY ONCE THE PART IS CREATED I'VE NAMED IT CAB_TOP AND AM NOW TRYING TO MOVE IT IN THE Z AXIS THE DISTANCE DEFINED BY THE VARIABLE BOX_HEIGHT WITHOUT USER INPUT
I have created a bunch of templates (title block type drawings) for my company. In these templates there is a dynamic block used for a particular note. Based on customer number, this note will be changed.
We have a program that will insert the correct template based on the drawing type. It will know the customer number and change the dynamic block visibility state to reflect the correct text in the note.
Here's the problem; I don't know why, but sometimes the visibility state does not change. It's not the code as it works just fine in some drawings.
I've gone in and just changed the visibility state name, then changed it back, then saved the drawing and it worked. In some cases, I've also just gone into the template and deleted the dynamic block and re-inserted it, and it began to work again.
Having trouble with dynamic block visibility states not working when using an automated process?