AutoCAD Visual LISP / AutoLISP :: Selecting All Dynamic Blocks With A Pick
Jul 30, 2013
I used to have a lisp routine that would allow me to pick one dynamic block and it would select all instances including the blocks that have become anonymous.
View 5 Replies
ADVERTISEMENT
Feb 20, 2012
I'm using the attached lisp to change the parameters of a dynamic block. In particular, I use the function chgdynprop
(defun c: test () (setq oggfreccia (car (entsel))) (chgdynprop (Vlax-ename-> vla-object oggfreccia) "Distanze1"300.0))
The lisp function works properly, because if I select the block from the bar I can see that property Distanze1 = 300.0
View 1 Replies
View Related
Mar 8, 2013
I'd like to use AutoLisp to modify and in some cases replace existing dynamic blocks in a drawing. How can I retrieve existing values and then modify values for the following:
1. Visibility states
2. Distances
3. Rotation angles
4. Flip states
View 1 Replies
View Related
Dec 17, 2012
Lisp routine to count the number of dynamic blocks of a specific name ("FD") by windowing an area of the drawing. I have a routine that I've been using to accomplish this, but i don't understand why it doesn't count dynamic blocks.
(DEFUN C:LOCATEFD(/ BLKNAME BLOCKSET TOTAL)
(SETQ BLKNAME "FD")
(PROGN(SETQ BLOCKSET(SSGET(LIST(CONS 2 BLKNAME))))
(IF(= BLOCKSET NIL)
[Code] ....
View 9 Replies
View Related
Mar 16, 2012
I wonder if it is possible to have a routine that captures the visibility name of a dynamic block and place it in a text in the drawing?
For example, I have a block with 10 visibilities. I copied this block 10 times in the project and I put each one with a different visibility. Now I would like to make a label with the name of each visible state next to each block.
View 6 Replies
View Related
Apr 22, 2012
how to open an dynamic block DWG using a script and not have the "This drawing contains authoring elements. Do you want to open in block editor" message?
I cannot seem to get rid of this message and everytime I have to manually say "No" and let the script run.
View 1 Replies
View Related
Nov 1, 2013
I have 4 Dynamic Blocks with the same name, but each are on different layout pages. I need to change the visibility state of all 4 to the same value. So far every attempt of mine has failed.
My process at this point is to: build a selectionset of all 4 Dynamic Blocks with the same effective name, convert the selectionset to a list of entity names, then use a foreach to change the visibility states one at a time. Currently, I get "error: bad argument type: lselsetp <Entity name: 7ffff7b6c90>". <Entity name: 7ffff7b6c90> is the entity name of the first block in the list. I'm guessing it's because the block is found on a non-current tab
(defun chgdynprop (e propname newval / obj v vval sal tot i) (setqobj (if(= (type e) 'vla-object) e (vlax-ename->vla-object e))) (if (= (vlax-get-property obj
View 3 Replies
View Related
Oct 6, 2011
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?
View 2 Replies
View Related
Dec 19, 2013
create a routine to list all the dyanmic blocks in my drawing with a specific visibilty parameter name. The problem with the blocks that I'm trying to search for in my draiwng is that the visibility names are very similar with the only differences being CASE sensitivity (ie. OBJECT vs. Object).
(defun c:test (/ BNAME DATA E I PNAME SS VIS) (if (setq data nil vis (getstring T "
Enter the Visibility Parameter Name: ") ss (ssget"_X"(list (cons 0 "INSERT") (cons 2 "`*U*")) ) ) ;; setq (progn (repeat (setq i (sslength ss))(cond ((and (setq bname(vla-get-EffectiveName (setqe (vlax-ename->vla-object (ssname ss (setq i (1- i)) ) ) )) ) (setq Pname(car (vl-remove-if-not '(lambda(j) (eq (strcase (vla-get-PropertyName j)) (strcase vis) )) (vlax-invoke e 'GetDynamicBlockProperties) )) ) (not (member bname data)) ) (setq data (cons bname data)) (foreach itm data (print itm)) ));; cond );; repeat );; progn );; if (if (null data) (princ "
Block/Parameter Name not found")) (princ))
View 9 Replies
View Related
Aug 8, 2013
I know how to increment pick points numerically (see below). How is it done alphabetically?
(defun C:test (/ pt# pt) (setq pt# (getint "
Enter number: ")) (while (setq pt (getpoint "
Specify point: " ))(if (/= pt nil) (progn (command "TEXT" "M" pt "" "" pt#) (setq pt# (1+ pt#)) ) ) ) (princ))
View 3 Replies
View Related
Jan 31, 2013
I'm wondering if there is a lisp possible to measure area's by pick point (as in bpoly). This little feature exists in Microstation so i was looking for something similar.
Is it also possible if this lisp can measure areas from an external reference (dwg, dxf, dgn, shp etc..)? I'm kind of new to AutoCAD in that sence.
View 2 Replies
View Related
Nov 18, 2013
I like that Autodesk now allows us to just pick a command's option from the command line instead of typing a letter in the option. For example, when drawing a rectangle we're prompted to "Specify first corner point or [Chamfer Elecation Fillet Thickness Width]" and if we wanted to draw fillets on the rectangle we can simply PICK that option from the prompt in the command line OR enter an "F" and return.
Is there a way we can use this functionality in our custom programs?
View 9 Replies
View Related
Aug 25, 2005
Is there a tool out there that will allow me to pick an object and change it's layer properties?
View 9 Replies
View Related
Aug 17, 2011
Normally when applying the matchprop command in CAD, one has to first pick the template element, and then select the elements which should have this template element's properties copied to/matched.
is it possible (via lisp perhaps?) to reverse this order, so that i can select a bunch of elements (e.g. through the quickselect icon) and THEN apply a matchpropertieslisp command, then select a single template element which the initially selected elements should mimic?
View 4 Replies
View Related
May 8, 2013
I have a lisp routine that I would like to add to. Right now when running the macro the user is not prompted to "Pick Point On Line" in this example
(command "insert" blk "s" var1 pause pause))
I have added the line
(setq pt1 (entsel "Pick Point On Line "))
(command "insert" blk pt1 "s" var1 pause pause))
but the command doesn't seem to like my PT1 value
BLK and VAR1 are set in another lisp routine.
View 9 Replies
View Related
Nov 6, 2013
I am looking for some code that would allow me to select a MTEXT Entity - or other entity - (as the DEFAULT option) but also to allow me to type in some text manually or to pick a point in the drawing. Something that would present the user with:
"Select an object or [P to pick a point]" or
"Select MTEXT or [M to type].
I can write some code to type in text manually as the default option and get the second option to select entity using get string and then write some condition of if code but I don't know how to do it having entsel as default option.
View 3 Replies
View Related
Feb 28, 2011
(defun CELBLKS ( / e blk ss blkl)
(setq blkl "" ss (ssadd))
(while (setq e (entsel "
[Code]....
i have this lsp, it works great but how can modify it if i want select with a window.? exemple: if i have 3 differentes blocks, i want to select them with windows and the lisp select all blocks that are identical of those 3.?
View 9 Replies
View Related
Jan 24, 2012
I have a project in 3D that I would like to export to Stadd. This requires lines rather than blocks. Is is possible to convert the blocks in the attached dwg file to to lines that are centered on those blocks?
View 9 Replies
View Related
Mar 26, 2013
What a lisp routine would look like for selecting all items on layer 5.
View 4 Replies
View Related
Nov 2, 2011
How to modify this routine so that I can select multiple objects as opposed to one at a time?
(Defun c:cd ()
(setq newdim (entsel "
Select Dimension to clear:"))
(setq newdimvalue " ")
(command "dimedit" "n" newdimvalue newdim "")
(princ)
)
View 9 Replies
View Related
Oct 25, 2012
The title says it all, Im trying to find a way to select just the vertical dimensions. Quick select doesn't work because there's no difference between a vertical and a horizontal dimension, so i was wondering if there was a LISP or something else i could do to accomplish this.
View 5 Replies
View Related
Feb 9, 2012
I am still green at lisp creation. I would like to create a lisp to change my cannoscale to match that of an existing dimension in model space. we use tabs and therefore have many different scales for the vports in our drawings. i want to be able to type my command, have acad ask for a annotative dimension to match, i click it, then the lisp resets my cannoscale to match.
View 4 Replies
View Related
Apr 22, 2013
A code that scans all through the drawing and selects the texts of the same value regardless of the layer, color, style, ...etc..
Just selecting duplicates for highlighting nothing more.
View 9 Replies
View Related
Oct 19, 2011
I wrote this small program to automate plotting a drawing to pdf. Everything work fine except I cannot figure out how to allow it to let me pick where I want the file created and what I want to call it. In this routine, the "" at the 3rd from the end place will just automatically name the file and put it in the parent folder. If I replace the "" with pause, it lets me change the name, but will not let me choose the location.
What I'm looking for is for a dialogue box to pop up (explorer style) that will let me choose a location and name the file. This is what happens if you do it "long hand" inside ACAD, how to do it in the code.
(defun C:clpdf ()
(setvar "cmdecho" 0)
(setvar "osmode" 0)
[Code]....
View 3 Replies
View Related
Nov 27, 2012
I have this code that I wrote years ago that I want to update to select two types of civil3d objects and show them selected with grips on the screen. This function works fine
(defun CELFEATURE ()
(ssget "_X" '((0 . "AECC_FEATURE_LINE")))
(setq sset (ssget "P"))
(if sset
(progn
(sssetfirst sset sset)
;(command "_.PROPERTIES")
)
)
)
(defun cF () (CELFEATURE))
but if I add the extra object like this which I assume is the wrong syntax i only get the second type of objects. Need correct syntax I should be using for selecting more than one object in an ssget statement.
(defun CELFEATURE ()
(ssget "_X" '((0 . "AECC_FEATURE_LINE","AECC_AUTO_CORRIDOR_FEATURE_LINE")))
(setq sset (ssget "P"))
(if sset
(progn
(sssetfirst sset sset)
;(command "_.PROPERTIES")
)
)
)
(defun cF () (CELFEATURE))
View 2 Replies
View Related
Feb 29, 2012
I'm trying to complete the code to select a p-line on layer G-POLY-GSF w/o asking for input. this (setq ent (ssget "X" (list (cons 8 "G-POLY-GSF"))) dosen't seem to work. What I'm I missing here?
(defun cf8 (/ ent dist obj)
(vl-load-com)
(setq ent (car (entsel "
Select line to offset: "))
;(setq ent (ssget "X" (list (cons 8 "G-POLY-GSF")))
[Code]....
View 8 Replies
View Related
Aug 6, 2008
I am in need of a lisp routine which will automatically pick up all hatch and solid hatch patterns within a drawing and change the colour to colour 254.
View 9 Replies
View Related
Jun 12, 2013
Ultimately I want to delete a bunch of Layers by selecting them using a portion of their name. Is there anything in cad that allows you to specifically select layers using only a portion of the layer name?
Based on AutoCAD Layer Standards: Users label layers with a code; for example: A-ANNO-TEXT
A - Stands for the Architectural Category the layer falls into
ANNO - Stands for Annotation
TEXT - Type of Annotation
I want to use the Layer Delete (-LAYDEL) command to delete all layers that begin with A-ANNO. In the Layer Manager (-LAYER) I am able to select specific layers using a " * " placed before and/or after " A-ANNO " to include all layers with that in its name.
When I write a script however (-LAYDEL); cad will ask me for the layer name, but will not allow me to use the *A-ANNO* to include all layers with that name: A-ANNO-TEXT, A-ANNO-GLAZ, A-ANNO-WALL, etc...
Is there anything in cad that allows you to specifically select layers using only a portion of the layer name??? I have to "taylor" drawings that I receive from companies who's layers may vary.
My script is in basic (NON LISP) language:
-LAYDEL
N
A-GENM
N
A-DOOR
N
A-DOOR-FRAM
N
A-DOOR-GLAZ
N
Y
View 9 Replies
View Related
Aug 12, 2013
Is there way that by selecting objects (Lines,Pl) it construct infinite lines ?
View 3 Replies
View Related
May 24, 2013
I am just starting learning lisp, And I am looking for a fast way to select multiple objects (usually circle) and export their coordinates and ID into a excel sheet through lisp programming.
As you might see in the attached drawing, the red circles are objects wanted. I have been trying to export their coordinates as well as their IDs in grids, e.g D28, Easting: Northing: . I still haven't found a good way to export ID for each circle.
As my code doesn't work, I wonder what's the most effective way to detect errors in lisp
View 5 Replies
View Related
Jan 11, 2014
I was on an older cad and am now moving to 2014.. my previous cad was heavily customized the old school way, I have decided to learn the CUI (and dynamic blocks)
My old cad has blocks on a drop down menu.. click BATH menu than WC icon, a macro sets the correct layer than inserts the WC.. took time to setup but pretty simple and straight forward (see attached for menu syntax). I also made a toolbar BATH and on that toolbar I made a WC icon.. that’s what I use the most
couple of questions
1) do I have to make a new command in CUI for each block to do the same thing?
2) I looked into the design center, but seems like its too many steps but it seems a toolbar with an icon on it, clicking the icon and a macro sets layer and insert block is still pretty quick..??
3) if a toolbar with an icon is still a fast and less step method, can I open the block and somehow make an icon of it? if so where do I put it?
View 9 Replies
View Related