AutoCAD Visual LISP / AutoLISP :: Deleting Last Inserted Entities
Jun 2, 2012
This is what i would like to make a lisp for: if the user gives the number tree the last tree inserted entity's are deleted. If the user gives the number four the last four inserted entity's are deleted.
View 2 Replies
ADVERTISEMENT
Oct 2, 2011
I know through the block command you can write out a selection of entities to a single drawing.But what I am wondering is if it is possible to have two drawings open, and transfer data quickly between the two?
As an example as we are detailing an assembly we create a title block around a detail, put dimensions and notes on as needed and would then like that to be transfered into another drawing next to the previously transfered detail drawing.
View 9 Replies
View Related
Nov 27, 2012
I want to code this lisp. The problem which I face is, In some drawings which come from the client, there are a lot of blocks.
I want to detect the blocks which has no sub-entities (but attribute) and add a rectangle inside this block, If it is an attribute add a line from 0,0, to insertpoint of attribute.
View 5 Replies
View Related
Nov 1, 2012
The code below collects empty blocks with the intent to delete them.However, it appears that if an Xref is currently 'unloaded' it apparrently collects that too. I could probably just test to see if the block is an Xref and avoid it... but how could I modify this to check if it is loaded and still empty?
(defun NullBlocks (/ block *thisdwg* block nullblocks)
(setq *thisdwg* (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for block (vla-get-blocks *thisdwg*) ;iterate block table
(vla-get-Name block)
(if (= 0 (vla-get-count block))
(setq nullblocks (cons (vla-get-name block) nullblocks))
)
)
nullblocks
)
View 9 Replies
View Related
Jul 3, 2013
I have a LISP that use the XATTCH command. How can I collect xrefs inserted by XATTACH? It can be more than one xref.
View 9 Replies
View Related
Sep 5, 2013
I'm using a blocklibrary, where I stored all my blocks, most of them have attributes.
Now I'd like to simplify my workflow and want to update the blocks that I inserted in a drawing trough LISP.
Is there a way to update all inserted blocks and attributes of the whole drawing a once? The idea is, that the LISP checks the whole blocklibrary and updates the inserted blocks that to not match with the once from the library.
View 9 Replies
View Related
Jul 16, 2013
I am having nearly 1000 drawings where I need to change the title block in a new format.
I am stuck up in moving all the entities in cordinates 15,280 (upper point) and 205,55 (lower Point) to 275,294 (upper point and correspoing lower point.
View 7 Replies
View Related
Jul 22, 2013
I have 2 selection sets and I'm looking for a more elegant method of checking if both sets contain the exact same entities (note - the order of entities might be different).
View 9 Replies
View Related
Jun 28, 2013
I continue learning....
(setq ins (vlax-ename->vla-object ( ssname sele cod)) nombre (vla-get-name ins) ) (setq bloque1 (vla-item (vla-get-Blocks (vla-get-Document ins) ) nombre ) ) (setq s_ent1 (vla-item bloque1 1)) (setq pt1 (vla-get-startpoint s_ent1 ))(setq pt2 (vla-get-endpoint s_ent11 ))(setq s_ent2 (vla-item bloque1 2)) (setq pt3 (vla-get-startpoint s_ent2 ))(setq pt4 (vla-get-endpoint s_ent2 ))(command "_pline" pt1 pt2 pt3 pt4 "c")
Why dont draw de _pline?
View 4 Replies
View Related
Nov 19, 2013
I have redined AutoCAD's copy command alias to C, but to also do other things, like set a few important variables in the background. One of the lisps I've incororated are making new viewports, that also create layers that are visibly specific to the viewport being created.
We were tasked a while ago to do an easy job of copying entities (dimensions, text and what not) in a layout. The problem is, users are copying the viewports too, which is bit more ineffificent than using the create viewport command I developed.
Is there a way to see if a selection set includes (0 . "VIEWPORT") entities? If the check returns nil, well then all is good. If the check returns "true", then I can prompt the user that a "VIEWPORT" entity is selected. I can then exit the command, or ask the user if they are sure they want to copy the "VIEWPORT" entity.
View 6 Replies
View Related
Aug 16, 2013
I have a lisp that draws variety of entities such as lines, arcs, hatches, points, blocks, text etc. How can I make one single block containing all of them, i.e. one block that has all items drawn since the lisp was invoked.
View 8 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
Feb 15, 2012
I have a lisp routing that the user has to use, to create a ucs, that is exactly on the front of the entity the user selects, so that whne they are drafting, labeling, dimensioningn the 3D entity, none of the drating lines are hidden when plotted.
The code is as follows:
(setq obj (vlax-ename->vla-object ent))
(vla-getboundingbox obj 'LowerCorner 'UpperCorner)
(setq LowerC (vlax-safearray->list LowerCorner))
(setq UpperC (vlax-safearray->list UpperCorner))
[code]...
Then I do a condition to see which points are greater than others, and move the ucs depending on the view to the foremost point. The program works perfectly.... however, often, they forget to use it.
I was wondering if I could incorporate it in another lisp that everyone uses, but not having the user pick the entity they want to be in front of (sometimes they pick the wrong entity). Instead, take the group of entities (anywhere between 1 to 30 per drawing (these are piping spools, so the entity count is not that great in model space)) and set a front working plane in model space. Working in paperspace is not an option, we're just too deep into our templates and processes.
I know there is a vmin and vmax, but they are for the X and Y axis, a VMax along the Z-axis would be great.
View 5 Replies
View Related
Dec 25, 2012
I have uploaded the handout for my AU2012 class to Google Drive. The link is [URL] It contains the detailed explanation for all the source code used in entmake-ing and entmod-ing the new MESH (aka Subdivision Surfaces) entities. [URL]
View 1 Replies
View Related
May 19, 2013
I am modifying stuff in a dynamic block insert entity. There is no "endblk" entity at the end of these definitions and I need to cycle through every entity within the block definition. When it gets to the last entity, I get an error because you cannot entnext passed the last entity. There are 2 things:
1. How to retrieve the # of entities in a block without cycling through it.
Or
2. A quick lesson in the *error* function, I cannot figure out how to implement this. I basically want to to say:
(if (entnext myent)) returns a error, don't abort & continue on.
View 4 Replies
View Related
Apr 25, 2013
I'm looking for an easy way to generate a on-line riser diagram of blocks that have been inserted on a floor plan.Here's what I was thinking.
For every instance where the block SLC_DEVICE IS insert on the drawing, the routine would insert the block listed in the "TYPE" and place text equal to what is listed in the "ADDRESS". The TYPE is the actual block name.
Each one of these blocks have a tag of TYPE and ADDRESS. What is in the TYPE tag is the block name of what should be inserted and what is in the ADDRESS tag is the text that should be inserted under the block.
So for example; the routine would find the first instance and the tag TYPE which is "Smoke_Detector" and the tag ADDRESS which is 01:03:001. The routine would insert the block "Smoke_Detector" with the text "01:03:001" directly under it. It would insert the next instance the same way a specified distance from the last; so on so on so on until all instances of the BLOCK (SLC_DEVICE ) have been inserted.
The other part of this would be the Block "NAC&SPK_Circuit" but you would use the Tags "Type", "Candela" AND "NacCkt" to generate the one liner.
View 9 Replies
View Related
Jan 17, 2012
I am trying to create a selection set (or LIST) of all objects inside a unnamed GROUP.
I found a means to access the unnamed group, however I am having trouble creating the list.
Command: (entget (cdr (assoc 350 (dictsearch (namedobjdict) "ACAD_GROUP"))))((-1 . <Entity name: 7efe6280>) (0 . "GROUP") (5 . "130") (102 . "{ACAD_REACTORS")(330 . <Entity name: 7efe5c68>) (102 . "}") (330 . <Entity name: 7efe5c68>) (100 . "AcDbGroup") (300 . "") (70 . 1) (71 . 1) (340 . <Entity name: 7efe6268>) (340 . <Entity name: 7efe6260>))
In the example above, there are 2 entities in the group.
What I want to do is to remove a certain entity from the GROUP, then delete the entity.
Repeat until all entities of that type are removed (I can figure this part out...).
How do I create a Selection Set (or LIST) of all entities inside a GROUP?
To access the first GROUP name in the dictionary:
(cdr (assoc 3 (dictsearch (namedobjdict) "ACAD_GROUP")))
View 1 Replies
View Related
Dec 4, 2013
I am working on a flood inundation, I would like to find a lisp or command(i'm not finding) to connect two points with a given elevation following the surface file or surface entities.
here is a small section as example right now it's just guesswork, some of these have taken a week to connect all the sections.
View 7 Replies
View Related
Oct 12, 2012
I have a drawing with various layouts that when I do a Zoom Extents the drawings is reduced to the size of a point.
I have done all the usual, ie: look for extra entities that are "out in space" so to speak and there are none.
I wonder if I have a block or image which may have an insertion point "out in space" and if this may be the issue.
Is there some way to Select all entities or Blocks (insertion point) that may exist outside a particular area ie: drawing limits.
View 3 Replies
View Related
May 21, 2010
I have a lisp routine that creates a script file and then it runs the script file. After the script has finished running, I want to delete the script file from autocad, but for some reason it doesn't delete.
I've tried using (vl-file-delete path).
View 9 Replies
View Related
Dec 16, 2011
I often have DXF files that contain very many short (10 digits or less) instances of text, and only a few long instances of text (11 digits or more)....
I would like to use AutoLISP to delete all of the short text in my DXF file, but leave the longer text.
View 9 Replies
View Related
Dec 21, 2012
I'm working up a routine to simplify clearing some space. I've been cruising here and other places piecing together something, but what I have ended up with is a routine that deletes all of the intended information (possibly needing repetition for those hard-to-reach blocks), but also deletes dimensions from the model space.
There are several things our company does which are "non-standard" but we have been at it for a while and I am trying to work with what I was given. Following is the code.
;;; not sure who Jeff M is, but assuming this bit is from him(defun odbx-test (/ dbx_doc) ;; edited 5/28/06 by Jeff M (if (< (setq dbxver (atof (getvar "ACADVER"))) 15.06) (progn (alert "ObjectDBX method not applicablein this AutoCAD version" ) (exit) (princ) (gc) ) (progn (if (= (atoi (getvar "ACADVER")) 15)(progn (if (not (vl-registry-read "HKEY_CLASSES_ROOT\ObjectDBX.AxDbDocument\CLSID" ) ) (startapp "regsvr32.exe" (strcat "/s "" (findfile "axdb15.dll") """)
[code]....
View 2 Replies
View Related
Dec 30, 2013
I downloaded a Copy of AutoCAD Recent Documents Manager.exe from the autodesk website and it won't run on any of the computers in our system. I was thinking about writing a LISP routine to delete the filenames with a DST suffix by replacing them with the next filename in the list. My question is If I replace the file with the next one above and the filetime,filepinned and class respectively. When I reach the end of the list can I just use "" for the file,filetime and class and integer 0 for filepinned (it looks like it requires a double).
View 1 Replies
View Related
Mar 19, 2012
We have this need to have all of the solids in a drawing to be placed in the "solid" layer.
Sometimes folks are drafting lines to develop these solids, and keeping the lines on the "solid" layer, rather than moving them to another layer, or deleting them altogether.
I could get folks to run this command before leaving the drawing.
I'm thinking something along the lines of:
Select all entities that are on the solids layer that are not solids.
If nil, great, do nothing.
If entities are selected, let me do something with them.
I'm hoping the following can be modified ever so slightly.
(setq non_solid (ssget "X" (list (cons 0 "3DSOLID")(cons 8 "solid"))))
View 4 Replies
View Related
Jul 12, 2012
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.
View 6 Replies
View Related
Nov 14, 2013
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 Related
Oct 7, 2013
Is 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)
View 9 Replies
View Related
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
Aug 30, 2012
I've written a method that creates a block definition and inserts one instance the newly created block definition. The block is comprised exclusively of lines and text entities. When the method is completed, all entities appear correctly on my machine.
However, when other users try to run the routine on their machines, the lines appear correctly but the text entities all appear positioned at the block insertion's origen. And the other users must manually regen the drawing after the command is run to trigger the text entities to move (or appear to move) into their proper location.
Though it wasn't necessary on my machine, I tried adding the following line as the last instruction in my command-method:
_drawing.Editor.Regen();
But even that last line's programmatically-triggered regen didn't solve the text location issue for my users. They still have to manually regen.
I also ensured that all (or most) of a test user's system variables were set to the same values that I use (via Express Tools export & import). But that didn't work either.
View 9 Replies
View Related
Apr 26, 2013
A Leader can be associative if it's drawn to a grip point . Is there a way to make inserted objects gripped to positions of existing entities?
If it's something to do with object overrule then it may be put in the too hard basket.
View 6 Replies
View Related
Jun 20, 2013
Lisp that switches back on Selection Preview i.e. thickens and highlights lines when you hover over them?I don't know why, but they are always unticking the boxes.
View 4 Replies
View Related