AutoCAD Visual LISP / AutoLISP :: Edit Diesel Expression In Field
Sep 2, 2011If LISP can be used to edit a diesel expression in a field inserted in dtext? I need to adjust the last number in $(+, $(GETVAR, USERI2),1) .
View 4 RepliesIf LISP can be used to edit a diesel expression in a field inserted in dtext? I need to adjust the last number in $(+, $(GETVAR, USERI2),1) .
View 4 RepliesI have a multileader balloon that I want to have a field that is a diesel expression that will allow me to select a block and extract the attribute value within that block. Is there anyway to do this?
View 9 Replies View RelatedI 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 a task where I need to automatically insert the drawing number (no path), plus two additional items, one an attribute, the other is within a dynamic block. I can achieve this using fields but now I havce to truncate some of the text.
It seems like I can't edit if I am using fields and attributes/blocks can't be used in Diesel (correct me if I'm wrong)
This is the information I have:
Filename: 123456-AS-WE.dwg
Attribute: Q2
Dynamic Block: X1 - Additional Information
This is what I require: 123456-AS-WE [Q2] [X1]
This is what I have so far: 123456-AS-WE [Q2] [X1 - Additional Information]
In other words, I need to restrict the dynamic block field to the first two characters.
How I can update my diesel expression to display the area in square feet not square inches. See expression below.
^C^Cattdia;0;_-insert;AREABLK;1;1;0;$M=$(getvar,AREA);attdia;1
Is it possible to get the value of a (custom)field expression in a LT diesel macro?
E.g. I would like to read the value of the following field: %<AcVar CustomDP.Current Revision f "%tc1">%
I need this information so I can use it in a file name.
I have many texts fields in my drawing. I need edit the format of all field. e.g field - 1030.60 convert to - 1.030,60 Is there any lisp doing that? I mean, select multiple field and change it.
View 3 Replies View Related" Convertion of AUTOLISP base routines to Diesel MACRO based routine to be used in a AUTOCAD LT based platform "
Here i am attaching the lisp file for ready reference.
I am currently using a field for my elevation tags. The field reads the y-value of a line and displays the results as the elevation. Our local jurisdiction requires that we list elevations from above grade (A.G.L.) as well as from bottom of base plate. The difference is usually 6"-12".
I was wondering if I could create another field that would read the same y-value of a line, but then subtract a predetermined value (6") and display the results.
Currently we have to do the math ourselves and this leaves room for errors and is often very tedious.
(cdr (assoc 1 (entget (entnext (car (entsel))))) ...
gives the string value of the attribute, but i would like to retrieve the field value attached to that attribute.
I created a block, that uses the Y coordinate of the block and returns it's location in a field.
I would like to be able to indicate weather the value is negative or positive. If Y coordinate is less then 0, then the field indicates "-" in front of the value. But if the Y coordinate is positive, I couldn't find a way to place "+"symbol in front.
Is there any way I could introduce a conditional statement saying: if Y>0 then add "+" in front?
What is the Command that Converts a Field to Text so that I can stop a Field updating after the initial set-up? I need to apply this in lisp.
View 9 Replies View RelatedI had a routine that extracted field values from text and atts, but noticed this morning it did not work on fields from sheets sets.
I looked at the code and realized if a field formula is beyond 256 chars, the dxf codes store it in multiple groups.
Here is the revised code that deals with thos multiple groups (3 and then 2):
;GET LIST OF TEXT AND FIELDS FOR A GIVEN TEXT;RETURNS ("PLOTTED BY " "%<\AcVar Login \f "%tc4">%" " DATE" ...);FIELDS START AND END WITH WITH %< >%;(TXT-FIELDS-SEPARATED (car (Nentsel " Select Text, MText or Attribute: "))) (DEFUN TXT-FIELDS-SEPARATED (ENAME
/ DICT ELIST ENDINDEX FIELDS FLDDICT FLST FORMULA INDEX OBJ SPLIT-FLDS TRIMMED-LIST TXT-LIST TXTAFTER DENT FLDVAL FLST-TR) (SETQ ELIST (ENTGET ENAME)) (COND ((OR (= (CDR (ASSOC 0 ELIST)) "TEXT")
[code]...
Is there any way to grab the Object ID or name from a layout tab to use in a field? I wish to link the layout name to a callout block so that if the layout tab changes position and name (inserting a new tab), the call out block will update no matter what page it is on. Without using the Sheet Set manager.
View 9 Replies View RelatedWe use Sheet Set Manager fields to keep track of section cuts and details and such.Users are asking me if they can get only the last 4 digits of the sheet number to show up on the section cuts.
Is there a way to parse or truncate a field in the formula area of the field dialog box?I'm familiar with LISP and DIESEL but the file dialog box / formula area does not seem to accept those functions. Will it take a .NET function? If so, what? Or, is there another option I'm overlooking?
We use multi-leader objects in our drawings. When the multi-leader and its value are to be replicated throughout the drawing, we create mleaders with fields that show the contents of the first mleader. That way we can update only the value in the first mleader and all of its children will update as well. It works nicely for us.
Here comes one snag. If one of us opens a drawing with which we are not intimately familiar, we don't know which mleader is the parent of which children. There might be fifty parents and four hundred children in a drawing so going through them by hand is a big productivity drain.
What I need to do is write a routine that will let the user select the mleader that includes the field and have the routine highlight and/or zoom to the parent object.
I thought I should be able to find that info in the dxf codes for the mleader, but I am either missing it or it's not there.
When a text is selected, in properties palette the Annotative field can be turned on/off - how can i do it programatically?
activex doesn't not have a propertiy for it. i presume it is in xrecords but could not find it.
i have one table make which field from block. Is possible sum?
View 4 Replies View RelatedI am trying to put a field formula in an attribute value. Basically I have a block that has a attribute called QTY and it is equal to 1. I can get the object property to equal 1 with this expression:
%<AcObjProp Object(%<\_ObjId #########>%).Textstring>%
The expression above will show a value equal to 1 (as I would expect)
Lets say I have two blocks now and I have the lisp routine combine the field values to get the expression below.
%<AcObjProp Object(%<\_ObjId #########>%).Textstring>%+%<AcObjProp Object(%<\_ObjId #########>%).Textstring>%
In the attribute dialog box it will show 1+1 instead of 2. My question is how do I get it to show 2 with out opening the formula box and evaluating it?
I have also tried.
%<AcExpr(%<AcObjProp Object(%<\_ObjId #########>%).Textstring>%)+(%<AcObjProp Object(%<\_ObjId #########>%).Textstring>%)>%
and
%<AcExpr((%<AcObjProp Object(%<\_ObjId #########>%).Textstring>%)+(%<AcObjProp Object(%<\_ObjId #########>%).Textstring>%))>%
The Field dialog box has an item for CurrentSheetNumber with field expression: %<AcSm Sheet.Number>%
Is it possible to create a Field to display the Next Sheet Number (CurrentSheetNumber + 1) and a Field to display the Previous Sheet Number (CurrentSheetNumber - 1)?
Is it possible to make an attribute or a field in a template with page numbering for layouts? Is it possible to make an attribute or a field in a template with the name of the layout?
View 7 Replies View RelatedI'm trying to create a field in a block (titleblock) that will automaticly update when I change the viewportscale.It's mostly only 1 viewport, sometimes a second of even 3rd but, they are not important to the titleblock.
I've read aboud fields and diesel expressions. I've tried and it works. there is only 1 problem,It only works with the object (when field expresssion, object, custom scale) in this case the viewport pressent at that time.
When i use the same field with the same expressions, it does not recognize the viewport/object.Is there a way to make the field, diesel expression or even something else, work without it's need for a
object name. Perhabs that the expression gets the viewportname from a lisp, something like: (setq ss(ssget "X")) ;some thing like this Can it be done?
I have a situation where I have a AutoCAD table linked to a Excel table to retrieve lots of general information for a standard drawing. That works just fine. In additionally I can use the fields "formula" field name and select a cell in the AutoCAD table to pull the data from the cell to the field, and this works for table cells that are numeric, but some of the cells are text based, and for these situations AutoCAD simply gives me the #### result. Is there a way to use a field to display text data from a AutoCAD table Cell?
View 3 Replies View RelatedHow I can tie a key from a custom dictionary to display in a field?
I know that I can dump the custom dictionary into global and the fields can track those values, but instead of strangling my available memory I'd rather track the dictionary key directly. How can I utilize the Entity name or the actual dictionary name & key?
Is there way get field object att in xref ?
View 3 Replies View RelatedI'm trying to send field value to a multileader with a block. I tried:
(VL-CMDF "_.mleader" (getpoint "
Specify leader arrowhead location: ") pause "%<AcVar.17.0 Lisp.*granitelbl* f "%tc1">%")
Maybe it was a naive of me to charge in so boldly. The field appears to have made it in but it does not act like a field and does not reflect the correct value or update. In fact I get no response at all. In fact using "update field" "all" selects the fields but reports that they are locked.
Is that possible to have a lisp to extract the Field Expression of a attribute in a block?Specifically, to extract the property VALUE (TextString) of this attribute.After to extract, I would like to put this text extracted in a different layout tab, in the same drawing. In this way, I will have a text linked to the attribute value between two layout tabs. So, when I have to change the attribute value, the text will be updated automatically.
I know that if I use the FIELD command to manually copy and paste this value it will work, but when I have a lot of attributes it becomes very laborious.
I create a lot of fields that reference a polyline area and I'm constantly having to change the default formatting values. I would like it to default to an Architectural format, WITHOUT the appended "SQ. FT." (which often takes up too much space), with a precision of 0 and using a comma as the Thousands Separator.
Is there any way to set these default values?
How to add the sheet description field into the rename & renumber window? I ask this because during the sheet set-up process we use the sheet description often, and I would like to go from sheet to sheet without having to right click and edit every sheet.
Civil 3D x64 2012
Win 7 x64 Ultimate
I7 3820 (3.6ghz quad core with HT)
32gig RAM (Corsair XMS3 4x8g)
Intel x z79 mobo (BOXDX79TO 2011 socket)
Radeon HD 7850 2gb GDDR5
Is there a way of showing only the location of the xrefs using a diesel expression (or otherwise)?
At the moment I'm using $(xrefs,5), but all the xrefs are in the same folder, and I only want that folder path shown once.
I.e., even if I have 5 xrefs, I just want one line showing the folder path of those xrefs.
I have a block named "WD_MLRH". There are 3 specific attributes which I want to change in it. The attribute names are.
RUNGCNT, RUNGDIST and RUNGFIRST.
RUNGCNT will = 20
RUNGDIST will = 1.0 (or 1 will suffice)
RUNGFIRST will be decided by a user input.
Something along the lines of...
(setq RUNGFIRST (getint "Enter first rung number: "))
I'm sure this is completely wrong, but i hope that portray what I'm trying to accomplish.