AutoCAD Visual LISP / AutoLISP :: Adding / Removing Vertex To Several Plines At Once
Feb 27, 2012I'm looking for something that, after selecting several plines (overlaped or not), I can insert/remove vertexes.
View 9 RepliesI'm looking for something that, after selecting several plines (overlaped or not), I can insert/remove vertexes.
View 9 RepliesI am working on a script. I need to select all lines and polylines and set there linetype scale to 1.
I'd take a simple lisp routine if that would be easier.
I have to create some plines in a drawing from the inputs provided by the client. I prepared a lisp code for it. I have to use it to 1000 drawings. Every time I open the drawing and running the lisp command.
Is any lisp code to run in bulk open drawings with out entering command prompt.
Yesterday I post the message "Exporting pline and text" which turned out to work realy well.
However I need something else...
I need to select several plines and export their vertexes (as it is already done) BUT I also need to select SEVERAL texts and export them as well as their insertion point coordinates.
I tried with the code below but without any success... It gives the error "; error: ActiveX Server returned the error: unknown name: "TEXT"" This happens after selecting some texts and hiting enter.
Here is the
(defun c:zi5 ( / f i o s ss obj objdata texto texto_f nomebase nome_zi tx1 iPt)(vl-load-com)(setq nomebase (getstring "
Enter name for file:"))
(setq nome_zi (strcat "D:" nomebase "_zi.txt"))
(princ "Select your plines...")
(if (and (setq s (ssget '((0 . "LWPOLYLINE")))) (setq f (open nome_zi "w")) )
[Code]...
Of course with ACAD MAP (FDO Labels for example) or better with ACAD CIVIL : no problem !
But often I have to use a Standard AutoCAD ...
A lots of people have already asked for this routine :
But I search in this forums and some others and unfortunately I can't find any correct routine Full operational on ACAD 201X 32/64 bits
I have many 2D Plines with an Elevation : some Normal , some have been splined --> 1st problem
I would like to label them with :
- either a Block with ONE attribut : the elevation
- either a MText with a blank Mask behind
As you wish ...
Question : Size/Height of the Block or MText ?
Some 2D Plines are very long (2nd problem) so I would like a question like :
Label each Pline every xxxx Units ?
So on a Pline Contour of 2000 meters, I could have the elevation (Block or MText) every 50 meters ...
Of course I would like that the Block or Mtext will have to follow (rotation) the Pline (splined or not) where the label is inserted !
I need to change the color of all lines/plines that intersect a given pline. How would I go about making the selection set of all lines that intersect that given pline.
View 8 Replies View RelatedI have this code to make fillet to a polyline, but the command does not allow specify fillet radius. How I can change the routine?
(defun C:filletv ( / ent ) (setvar "FILLETRAD" 2.500) (if (setq ent (entsel "
Select element near vertex: ")) (command "_fillet" "_P" ent) ) (princ) )
I am using acad 2010. I have the ability to draw a 3d polyline on the screen with a different xyz value for each vertex using a digitizing puck. I need a lisp routine that will allow me to adjust the z value only (not the x and y values) on any 3d polyline. I just need to raise or lower the z value at any vertex and repeat if nessasary but I don't want to type it in, I want to raise/lower the z using digitizing puck (with z wheel)....example: I draw a 3d polyline which has 9 vertices with different elevations - vertex #6 is 22.6 (too high) in the z value so I need to drop it to 22.4 without typing it in. Vertex #8 is 12.2 (too low) so I need to raise the z to 12.6 without typing it in and using the z wheel on my digitizing puck. Others have tried and but this is a bit complicated and I may have not expressed it correctly.
View 2 Replies View RelatedI need to wright a routine in autolisp that selects all 3Dpolylines with the same vertex Z value.Qselect as no transparent mode and filter doesn't work.
View 7 Replies View RelatedI have been having a few 3dpline's with the last vertex being in a different layer. I saw a site mention that this is an AutoCAD 14 bug that could be caused if a program does not end the pline with the layer being set properly before doing a seqend command. If I move the entity to another layer and then back to the correct one it will fix it. Audit in R14 will not show any errors. If I export the file to AutoCAD 12 , audit will detect and fix the problem. I would like to find a Lisp, ARX, etc. that would check for this problem and fix, change color or layer, or whatever.
View 2 Replies View RelatedI have a program that makes 3d polylines from various data. That 3d pline then gets added to a civil 3d surface as a breakline. I want to modify the pline with my program, but preserve the handle, as I think that is what C3D uses to decide if its part of the surface. I tried this as a sample with no luck:
;DELETE 3RD VERTEXT FROM 3D PLINE
(DEFUN C:T3 ( / EN ENAME ENT ENTL)
;GET 3D PLINE
(SETQ ENT (ENTSEL "
Select 3D Pline:")
[Code] .....
I know you can modify a vertex, but what about add and delete with entmake and entmod? I also considered using activex for this task, but you can only add verticies from what I could tell in the object browser of VBA, not delete them.
What I will be doing is deleting all the verticies and adding back the correct ones. Or if there was a way to transfer a handle to a new entity after deleting the old, that would suffice too.
I have a drawing with DXE files in xrefs. I am not able to remove these references. How to Remove the DXE files from Xref.
View 3 Replies View RelatedCurrently developing a GUI, I'd like to remove the grips on selected objects when I launch a function from a toolbar. I have the classical ^c^c at the beginning of my scripts, but it doesn't seem to remove them, although pressing 2 times the esc keys does it...
View 4 Replies View RelatedI am using a variable that is being called up from a .csv file for a file name. By default this variable automatically includes a comma due to it being called from a .csv.
How to remove a character ( , ) from a variable? I'm not sure if this is along the right line or not, but i used the READ function to read the variable as a string (i think thats how it works?).
When i export revit drawing with revit family
the revit family become block in autocad like this
M_Single-Flush - 700 x 2200mm-278353-Ground Level _0_45
usually i want to remove the ID and view name to become like this without have to re type because it is tedious
M_Single-Flush - 700 x 2200mm
something like how many letters you want to remove from last to first ?
or something better like remove this last two dash and the letters embedded inside ( that separate name-ID-View name) -278353-Ground Level _0_45?
R14 Autolisp:
I can create an empty selection set (setq EMss (ssadd)). As I loop through a list I can use the counter to create selection sets on the fly by using:
(set (read (strcat "ss" (itoa cnt))) EMss) and even keep a list of the ssets created with (setq sslst (cons (strcat "ss" (itoa cnt)) sslst)). But when I try to add an ename to the ss with (ssadd ename (read (strcat "ss" (itoa cnt))), I get a error: bad argument type (SSADD NEXTE (READ (STRCAT "ss" (ITOA CNT)))).
why I can create the sets but not add to them this way? I can add to them from the command line.
I want to find a Lisp routine for building rooms (bedroom, bath, kitchen etc). example: I want to build a bedroom and every bedroom has the following blocks: smoke detector, door, window, bed, night stand, closet. Is there a way to run a lisp routine that would just ask me for basepoints and rotation angles of all those blocks? Basically it would automate building a bedroom by inserting all the blocks for me and just prompting me for basepoints + rotation angles.
Would a macro be better suited for this? I want to do one for every room - kitchen, bath, bedroom, living, dinning etc. I already have a nice collection of blocks.
Any routine where I could keep picking on my exit arrow blocks (showing how many persons exiting from each space) one-by-one and the program would add up the numbers. For example I pick on blocks with numbers of 2, 4 & 3 and I would get 9.
View 3 Replies View RelatedI was trying to add a point as extended data to a block.
Therefor i used this data but i get an error every time:
(setq lastent (entget (CAR (entsel))))(regapp "list")(setq exdata '((-3("list" (1011 . 3277.82) (1021 . 5782.5) (1031 . 369.5) ) ) ))(setq newent (append lastent exdata))(entmod newent)
I've inherited management of CAD standards. A third party developed the tool palette - mostly blocks, etc. but there are also icons to add whole series of layers to drawings. Click 'Architectural Layers' you add the architectural layers. Click 'Plumbing Layers' you add the plumbing layers. Since the original implementation, things have been changed.
How do I update these tools?
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
I've created a couple of programs:
One - that will start a new project file, add our standard drawing sheets
two - Insert a bunch of wblocked components based on user input
programs 3 - 6 all do the same as program 2, just different components for different sheets.
I can run all these programs and they work (i need to do a lot of "clean-up" but they work)...
I have them set-up to open the next drawing.But i have to type in the next command, and continue until all my programs and done running.
My questions is how can I accomplish this without having to continually type in commands?I can't run these as a script, but is there another method?
I have been asked to make the title text larger (drawing are being issued at 1/2 scale, A1 to A3) on a large set of drawings. My solution was to copy the title attribute block to a temporary location, resize the attributes and redefine the block by running a script (scriptpro). Some drawings needed the title line split to next line so I had to move the sheet counter (1 of xx, 2 of xx etc.) which was linked to drawing file name for number with a field/formula.
The diesel expression shown below extracts that number. My problem is I cant figure out how to I can edit this expression to allow for a set not starting at 1. I had used a formula to subtract the difference,but how do you express this to run in a script?
This is my script......
attreq
0
-insert
ftc-gwp-a1-nosheet-stb=ftc-gwp-a1-nosheet-stb
0,0
1
1
0
[code]........
I have draws with a a lot of layouts.In each layout, there is a block (CARTOUCHE) with a an attribute (PAGENUMBER)
I am looking for a way to select the block in my first layout, indicates a number for my attribute (PAGENUMBER). The lisp will automatically increase the attributes of the next others layout. How can I start this lisp.
I have attached 2 lisp files. datblkx5 makes a block of selection, inserts the block with a 5x distortion, explodes it, and corrects the text for width factor and text height. This one works fine.
I wanted to add the feature of scaling my selection with a user input value. This is the lisp datblkxxx. This one doesn't work. (that is it doesn't correct the text for width factor). I can't figure it out.
I'm able to add custom panels/buttons into the Ribbons, by cloning the existing ribbon (from acade.cuix) into my partial cuix. However.. I'm not able to add more commands to the shortcut menus, using the same technique.
Is it possible to add custom commands to existing shortcut menus using a partial cuix?
I have an opportunity to make a good impression at a new job, but ive never had the initiative to learn how to write a lisp routine. at my work we make walk-in coolers and freezers. these coolers are modular with a standard wall piece measuring a certain length. these wall sections have to be numbered sequentially. is there any way to automate this? sometimes we get change order from the client and it means going back and manually changing multiple texts (sometimes in the hundreds), but i thought if there was a way these wall sections could be scheduled somehow that when a new wall panel is inserted in the beginning of the sequence it would update everything after it automatically.
View 9 Replies View RelatedI get an AutoCAD drawing from my conveyor manufacturer who have buried a block (tagname) in all of their conveyor blocks.
The only way to remove them is to manually use BEDIT and erase the tagname block.
Is there a way through Autolisp to search all blocks in a drawings and if the tagname block is part of the definition of the conveyor block, erase the tagname block or redefine the conveyor block without the tagname block.
Is 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)