AutoCAD Visual LISP / AutoLISP :: How To Get Tag String Of An Attribute By Mouse Clicking
Feb 24, 2013
I have a TitleBlock than contains more than 50 attributes inside itself.
I want to prepare a lisp code to GetTagString when I clicking on one attribute inside a BLOCK.
I prepare a code to get Block name when I ckick on a block:
(defun GetBlockName ( / obj)(defun sel_Obj( / sel)(While (=(setq sel (car (entsel "
choose a "BLOCK": ")))nil)(prompt "You didn't select any object!"))sel)(While (not (eq (vla-get-ObjectName (setq obj (vlax-ename->vla-object (sel_Obj)))) "AcDbBlockReference"))(prompt "That was not a "BLOCK"!"));;while (vlax-get-property obj (if (vlax-property-available-p obj 'EffectiveName) 'EffectiveName 'Name)) ) ;;usage: ;;(GetBlockName) ;;RESULT: ;;
just Selected Block Name Something like this but just for TagString of attribute is my desired!
View 3 Replies
ADVERTISEMENT
Dec 20, 2013
I have a lot of attribute blocks in my drawing which i want to move them one by one
so , here is what i want to do :
I have numbers (or texts) in my work area and this numbers also exist in my attribute blocks .. i wanna move my attribute blocks with tag name value reference to my specify area if tag name values are matching with text or numbers in this area .. every block will check my selected tag string and will be move on matching text in my work area.
View 5 Replies
View Related
Nov 16, 2012
i failed to find one which would change string of a text to other for all types of objects. I mean it was usually either only multitext, or only text, dimensions or attributes.creating one which would change in abt 200 drawings:
-001
-002
-003
to:
-00001
-00002
-00003
in attributes, text, multittext, leaders, multileaders, dimensions..... at the same moment?
It is meant to be used in ScriptPro (by loading lisp in script).
If not possible, then can also open each file and run the lisp in each of them - still would save lot of time.
View 4 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
Jul 3, 2012
I wanna transfer my attribute block values to another attribute text blocks , is there any lisp for that?
Is there a possibility for sum tag values of choice attribute blocks to inside of another attribute text block ?
View 2 Replies
View Related
Dec 8, 2011
Background: Someone exploded an attribute block and copied it hundreds of times throughout a project, each time changing the Attribute Tag to match the Value they expected to appear in their drawing. The drawing must be xrefed, so the attribute definitions do not appear.
(There is only 1 attribute in the block.)
Proposed Solutions:
1:AutoLISP routine which copies Tag data from Attribute Definition into Value of Attribute Block:
Prompt-Select Attribute Definition
Copy Tag data
Prompt-Select Attribute Block
Paste data into Value
(Allow repeat to speed workflow)(*PREFERRED*)
2:AutoLISP routine which copies Tag data from Attribute Definition into Default Value and creates a new Block:
Prompt-Select Attribute Definition
Copy Tag data
Paste data into Default Value
Create New Block
(Select Multiple Objects)(Creates tons of new blocks which are messy)
View 3 Replies
View Related
Jun 6, 2012
I have a list that is "acl", I would like to convert it to a string "acl", everything that I have read uses alot of code. Does this really take that much code to do?
View 9 Replies
View Related
Jul 11, 2013
Here's one that I could use on that i can't figure out:
I have a list of a bunch of descriptions that looks like this:
("00.02.00" "CTD01 Mainframe PT1 (top)" "GD01")
What I am doing is grabbing the middle item and i need to break this up into 2 lines. So, my code below grabs the first 3 "words" in the second item in the list and puts them in a list, but I need to convert this back to a string.
(setq desc6a (list (car (read (strcat "(" (cadr input6) ")" )))(cadr (read (strcat "(" (cadr input6) ")" ))) (caddr (read (strcat "(" (cadr input6) ")" )))))
I tried a bunch of ways but can't get it
View 8 Replies
View Related
Feb 22, 2012
I am trying to make this: L:Engineering-208037SURVEYDRAWINGS turn into this: L:Engineering-208037DRAWINGS
I am using the dwgprefix and it returns the first string and i want to make it in the second string as a new variable or replace the old variable so i can use it in a save as routine i am working on.
The problem is sometimes them project number (0208037) will be longer or shorter so i can't use the substr command
View 6 Replies
View Related
Aug 20, 2013
I'm looking for a function to return the actual text from an mtext object.if there's a carraige return I wish to replace it with a space.
View 4 Replies
View Related
Aug 31, 2012
acad_strlsort will sorts strings, but what if my list looks like
("1" "2" "3" "10" "11" "12" "20")
i am sure i have seen it done ina simple way using vl-sort or vl-sort-i
but am not able to find...
View 5 Replies
View Related
Nov 18, 2011
I've been working on a lisp to set up basic settings such as text styles, dim styles, discipline specific layers and things of that nature.
I have a prompt to ask for a discipline designator as a string. I want to have an If statement or a conditional to read that string and check for a "C" if it finds it I want to have it set up a dimstyle to decimal feet ect and if not do it as architectural units.
This is just a test lisp that I'd like to add to the main one listed above...
(defun c:test(/ disc dsnm dsna)
(setq disc (getstring "
Discipline (G,C,S,M,E,CP): ")) ;Prompt for Discipline
(setq ds (getint "
Dimscale Factor: ")) ;Prompt for Dimscale
[code].......
View 6 Replies
View Related
Jul 9, 2013
I would like to use a string as a variable if this is possible. I've got:
new-pl-lay (as a variable that holds layer name "UGL_PL_NEW")
first-cable (as a string that holds "new-pl-lay")
I'd like set the current layer to "UGL_PL_NEW" by using the first-cable string.
Something like:
(command "_.layer" "m" (read first-cable) "")
View 8 Replies
View Related
Aug 30, 2011
I'm working on a LISP function that adds a predetermined string to each layername in the dwg.
I came up with this:
(SETQ prefix "A-_82-_")
(TBLNEXT "LAYER" T)
(WHILE (SETQ la (TBLNEXT "LAYER"))
(SETQ old (ASSOC 2 la)
new (CONS 2 (STRCAT prefix (CDR old)))
[Code] .....
The line (princ "
la is: ")(princ la) (princ "
") is thrown in to enable me to see the result of the while function, and is to be removed from the final version.
Now, everything seems to work fine, as the princ shows on the acad textstcreen.
Yet, when I check the layer palette, all layernames remain unchanged.
My guess is that I should use some other function then ENTMOD or ENTUPD to change the layertable, but I'm at a bit of a loss as to which function is required.
View 3 Replies
View Related
Jul 17, 2012
I have a list of (0 .4 .8 0 10). I want to convert every element of the list to string.
View 4 Replies
View Related
Oct 15, 2013
How i can filter attributes string value.
How i set the layer name is = attributes string value.
Example:
A attributes string value is R8 .all these string is set the layer name is same string value(R8).
View 1 Replies
View Related
Jun 11, 2007
In order to avoid duplicate text string in different places in the same drawing, I would like to have such a tool to find duplicate text string.
For instance, I want to put numbering of some connection lines, I do not want to have different lines but have same number by mistype.
View 9 Replies
View Related
Oct 24, 2011
I 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?).
View 9 Replies
View Related
Jun 11, 2012
I would like to know how I can compare the value of a variable to a set string of text if the two prove to be equal perform task A if the two prove different perform task B?
View 7 Replies
View Related
Feb 18, 2013
I write a code to replace strings in one string.for example
str="AutoDesk, AutoCAD, 2013, Electrical, 64Bit"
patt=", "
NewStr=" - "
==> result: "AutoDesk - AutoCAD - 2013 - Electrical - 64Bit"
;;replaces NewStr instead of Patt(s) in Str string(defun ReplaceStr (NewStr Patt Str)(While (> (vl-string-search ptt str) 0)(setq Str (vl-string-subst NewStr patt Str)) );;whilestr) ; usage;(ReplaceStr " - " ", " "AutoDesk, AutoCAD, 2013, Electrical, 64Bit")
==> result= ; error: bad argument type: (or stringp symbolp): nil
View 9 Replies
View Related
Oct 18, 2011
I need a lisp routine that will add or subtract to modify a value in a text string. Its used for drainage fixture units on waste & vent plans. Example: We use basic dtext strings that look like this [color=red]4"(6)[/color]I would like to be able to add or subtract to the number that is [b][size=12pt]ONLY[/size][/b] in parenthesis and would like to be able to pick multiple text strings at one time so it would result in something like this: [color=green]4"(6)[/color] + 9 will become [color=blue]4"(15)[/color].
View 9 Replies
View Related
Feb 10, 2013
i have in Drive C a file "Steel.lsp" have function called IPE
in this function have this line
(setq n (getstring "
Enter IPE Height :"))
i loaded it
i created a menu and command in it called "Amr"
no i need when i click Amr Run IPE with string 270 then click enter
i need all this happen automaticlly when i click on "Amr" on menu
how???
View 2 Replies
View Related
May 2, 2012
I have spent the last three days writing a lisp program that will copy a text string from one text file and paste it into another. I have tried using the write-string, getstring, prin1, princ and print functions with no success.
View 6 Replies
View Related
Sep 12, 2011
There is a lisp function to replace all occurrences of a character within a string?
In short, as the Replace command in Visual Basic
For example, to replace all "x" to "*":
"34x59+60x3" -> "34*59+60*3
View 6 Replies
View Related
Aug 6, 2013
I have this interresting problem, it occured just here, in other situations, the script works fine.
I am counting length from coordinates:
Command: (setq bod1 ppo_bod1)(-0.821965 -1.7232 0.0)Command: (setq bod2 ppo_bod2)(25.428 13.1268 0.0)Command: !mfac0.025Command: (setq x (atoi (rtos(/ (abs (- (car bod2) (car bod1))) mfac))))1050Command: (setq y (atoi (rtos(/ (abs (- (cadr bod2) (cadr bod1))) mfac))))593Command: (- (cadr bod2) (cadr bod1))14.85Command: (/ (abs (- (cadr bod2) (cadr bod1))) mfac)594.0Command: (rtos(/ (abs (- (cadr bod2) (cadr bod1))) mfac))"593.99999998"Command: (atoi (rtos(/ (abs (- (cadr bod2) (cadr bod1))) mfac)))593
As you can see, the conversion from 594.0 (real) to string causes an inaccuracy, which is strange, because the length really is 594.0
View 3 Replies
View Related
May 30, 2012
Is there a way to apply a single string value "Phase1", or "Phase2" to all layers in a drawing? I though about exporting a Layer State, modifying it in Excel, then re-importing the layer state, but, Layer States don't store a value for "Description."
I'm creating a consolidated map from several drawings, but I'd like to be able to separate the layers from each drawing. Description seems like a good value to populate and be able to sort by in the Layer Manager.
View 3 Replies
View Related
May 22, 2013
Someday the light bulb is going off and I will understand mapcar and lambda. However.....I have a program that reads an excel file sheets. Sometimes the sheet only has 1 column, sometimes 2 or more.
I need to convert the saved values from the sheet to a list with the text spaced evenly. Unfortunately the text lengths vary. I would like a subroutine to pass the list to and return a list of strings with text aligned with padded spaces allowing for the longest text in each column. I am using the new list in a dialog box with fixed_width_font=true (so columns align).
Example 1-
(setq List1 (list "Col1-Line1" "Col1-Line2" "Col1-Line3-longer" "Col1-Line4"))
(AlignText List1)
returns
"Col1-Line1"
"Col1-Line2"
"Col1-Line3-longer"
"Col1-Line4"
so no padding needed
Example 2 -
(setq List2 (list (list "Col1-Line1" "Col1-Line2" "Col1-Line3-longer" "Col1-Line4") (list "Col2-Line1-longer" "Col2-Line2" "Col1-Line3" "Col2-Line4")))
(AlignText List1)
returns
"Col1-Line1 Col2-Line1-longer"
"Col1-Line2 Col2-Line2 "
"Col1-Line3-longer Col2-Line3 "
"Col1-Line4 Col2-Line4 "
Example 3 -
(setq List3 (list (list "Col1-Line1" "Col1-Line2-longer" "Col1-Line3" "Col1-Line4") (list "Col2-Line1-longer" "Col2-Line2" "Col1-Line3" "Col2-Line4") (list "Col3-Line1-longer" "Col3-Line2" "Col1-Line3" "Col3-Line4")))
returns
"Col1-Line1 Col2-Line1-longer Col3-Line1-longer"
"Col1-Line2-longer Col2-Line2 Col3-Line2 "
"Col1-Line3-longer Col2-Line3 Col1-Line3 "
"Col1-Line4 Col2-Line4 Col3-Line4 "
View 5 Replies
View Related
Aug 1, 2013
Main question: I need the user to be able to type a command. Then use it or cancel it. Then i need them to type another lisp command. In the second command i need to know (have the string of) the previous command they typed in. How do i get that string?
What I have tried.
I have looked at "LASTPROMPT" though not extensively, and i believe it would just return "ineedhelp" if i tried that.
I have looked at "CMDNAMES" but that gives the command you're currently in.
And I have found one page on this forum titled: Command Line History Macro, but there was no answer on that post.
I could create a global variable for that string, but then I would have to put the set code in every function I create. Nope, will not.
Backstory:
There's a person that is going to make how-to videos on how to use some of my lisp routines.
Anyhow, I need the user to be able to type in "ineedhelp" and the lisp that runs must get the last command's string go to the shared drive and pull up the video file for that command.
I have made a lisp that opened a word file before, and if i could get the string of the previous command, i'm fairly certain that I can get the videos to work.
There will be approximately 60 lisp routine video's.
View 9 Replies
View Related
Dec 11, 2012
how I could open an external .CSV file which is assigned to a variable called INFOFILE and scan line by line and replace each instance of the string "WIDGETTE" with the string "WIDGET"? I assume the function vl-string-subst woud be involved.
View 9 Replies
View Related
Oct 9, 2013
I've trying to track down a solution for an issue that we are experiencing. When some of our lisp programs get run, you can no longer double click on text to edit it in paper space. If I put text in model space, I am able to double click to edit it. Is there a variable for this?
I just verified something else, if I move the text to be outside of the View Port, I can double click to edit the text. If I try to double click to edit while inside the viewport then it switchs to model space withing the viewport.
View 9 Replies
View Related
May 17, 2012
I have a routine that looks for an MText date stamp and replace the old date with a new date. The problem is some MText strings appear encrypted. Below is an example:
{\H1.121x;\C1; \LFY 2011-12\l \H0.6252x;04-30-11} This is what I should get when I extract the string (as shown in Property window)
(1 . "\pxi-2.1818,l4.3636,ql,t4.3636;{\fSymbol|b1|i0|c2") is what I get when I extract the group code.
I'm running AutoCAD 2012 on Windows 7.
View 2 Replies
View Related