AutoCAD Visual LISP / AutoLISP :: Double Click Dimension For DIMRND Override
Feb 13, 2013I want to doubleclick on a dimension and have the DIMRND override appear
I can't figure out what command I need to customize the doublclick CUI
I want to doubleclick on a dimension and have the DIMRND override appear
I can't figure out what command I need to customize the doublclick CUI
My goal is to be able to select a line and a dimension and then have the line's length appear as the text override for the dimension. I have the code to substitute the variable "dist" for the dimension text:
(setq dimselected (entsel "
Select Dimension:"))
(setq newlength dist)
(command "dimedit" "n" newlength dimselected "")
but am having problems extracting the line's length to the variable and setting setting it equal to the variable. To make things more interesting, the value needs to be in inches with fractional inches accurate to 1/16".
I wrote the code below (allow the user to pick points in different viewports and then override an existing dimension's text with the difference in X values. The (hopefully) last issue is that the fractions should be vertically stacked and at 100% text size.
(defun c2text ()
(command "mspace")
(setq p1 (getpoint "Select left point "))
[Code]....
Any way to customize the double-click of a block attribute to run the _ATTIPEDIT command on the targeted attribute? I know this can be achieved by holding Ctrl & then double clicking, but I am often using my hand else where on the keyboard, or even more often, when entering many values into attributes, I am using my left hand to keep my place on a sheet of paper as I scroll down it and enter in the values.
View 5 Replies View RelatedAny way to override existing AutoCAD commands.
Lets try this. When a user types "line" at the command prompt, or hits the "line" button on the toolbar, or chooses "line" from the draw pulldown menu, is there any way I can re-write what line means and draw a circle? (Extreme example)
There are just some commands that I'd like to have a variable set in the background, depending on what the command is. So I'm thinking if I could re-write the "line" command, instead of trying to convince everyone to use and remember a custom command, it would be much more efficient. There are lisp files already loaded in their start-up suite. Not sure if that works.
What I want is every time I click the mouse after the intial entering of the width it prompts me to do a single branch, double branch or transition. then asks for size, etc. This used to work but now it does not I am using 2011 MEP
(defun cuctsh (/ tcwidth pt1 pt2 threshhold ss segment oang inrad ofrad outrad 1o1 1o2 ro1 ro2 eao ea ebo eb a dimpt xa rb ra) (setvar "cmdecho" 0) (if (not cwidth) (setq cwidth 0.0)) (prompt (strcat "
Enter duct width or diameter <" (rtos cwidth) ">: ")) (setq tcwidth (getreal)) (if tcwidth (setq cwidth tcwidth)) (setq pt1 (getpoint "
Start point... ")) (if pt1 (setq pt2 (getpoint pt1 "
[code]....
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 want to know how to create linetype with double lines one rectangle empty and other with solid in autocad(i am using autocad 2004)I tried by express tools with command mkshape (and then makelinetype command) but it is coming without solid, is it possible in autocad by using Autolisp, see attached dwg, name is linetype_ds
View 2 Replies View RelatedI 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
I need a function that allows to convert the polylines selected with a width globalize defined in a double closed line (spaced by the same width of the polyline), with a hatch inserted automatically defined.
Brilliant idea to draw raceways quickly: instead of making handmade double lines, connect, enter the hatches all by hand, you could quickly draw the polyline with width identical to the size of the duct, and then the lisp transform it into a duct more aesthetically pleasing if compared to the full polyline!
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.
I have a double-lined duct lisp but I would like the duct size to automatically be inserted. Now I have to type it separately. (AutoCAD Architecture 2010)
View 8 Replies View RelatedI have double line pipe drawings but i have to change distances between of this lines in entire drawing and i was thinking that maybe there is a lisp code which can create new double line according to my specify dimensions ...
example :
Distance between lines : 100 mm
------------------------
------------------------
here is what i want to do :
1. select double line
2. specify new distance ( for example 200 mm)
3. lisp will create center line middle of the selected lines ( maybe it can ask me that this center line will be permanently or not )
4. lisp will create new double line from this centerline according to my specific distance
5. new double line layers will be the same with selected old double line
and this lisp has to work for double arc or quarter circles too.
I am trying to limit the input that can be processed when using the getpoint lisp function. So the code below prevents the user from entering null input (i.e just hitting a carraige return) as specified by the initget bit code of 1, or a non-numeric entry (i.e. for instance, typing S and hitting a carriage return) as the getpoint function does not allow for a non-numeric entry.
(initget 1)
(setq PT1 (getpoint "
Pick Location of First Point: "))
However, the issue is that the code does NOT prevent the user from entering a number and hitting return. For instance, if I enter the number 100 and hit return, getpoint accepts this as a valid entry and returns a point value that is projected, in some form or fashion, from I believe the last entered point or (0,0,0) if a point was not previously entered. I only want the user to be able to select a point with a mouse click and not type in a number or point coordinate.
So is there some way with AutoLISP or Visual Lisp that you can prevent the user from typing in a numeric value and hitting a carraige return in conjuction with the getpoint function? Or is there some other function that will provide the getpoint functionality while providing the entry limitations described?
I am wondering how I can override a dimension value through AutoLISP. Is there a command line that I can use so that the pop up window won't show up?
View 7 Replies View Relatedi 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???
I want to override the measurement in a dimension with a string of text using a LISP command.
E.g.. "select dimension"
type new text for dimension
replace dimension measurement with new text. I can get the entity and its values, buy not sure which value to change for the "text override".
BTW Acad 2012.
how I would go about writing a function that would calculate the length of a diagonal of a rectangle using SQRT function? I've been trying but so far nothing!
View 4 Replies View RelatedI have the following code, that for some reason the last created dimension is no being selected. That's the first problem. The second (and not as improtant) problem( becasue it does work), is that I'm using the "dimedit" command. I prefer to do a swap within the dxf codes, that I treid but didn't work, so I resorted to the "dimedit" command.
(command "DIMLINEAR" pause pause pause)
(setq last_dim (entsel (entlast)))
(setq oldunits (getvar "lunits")) (setq oldprec (getvar "luprec"))
[Code].....
Is there any way to change the colors of the dimensions styles, including dimension lines, extension lines and text to "by layer"
I found a code to change the colors, but only affects the current dimensions in the drawing and the styles do not change.
I'm writing function which will facilitate user to offset dimension. After enter command, he select dimension and select point near one of dimension's arrowheads. Then I'm calculating new XLinePoint1 or XLinePoint2 and replacing original.
I have everything done. I thought ... The problem is when user firstly create AlignedDimension and after that he create RotatedDimension by using continous function. After that XLinePoint1 and XLinePoint2 are not parallel to the DimLinePoint (look at image).
How can I get coordinates of points selected in red rectangles?
I know that one is specified as "dimension line defining point" but what about second? How can I get its coordinates? Or maybe there is other way to get this point?
Looking to make a selection set of points that are on a specific layer, and then create a dimension between, in this case, two points. I feel like it should be very simple, but I can't get it to work for the life of me. Here is the test code I've been playing around with:
(defun c:test (/ sel1 TC)
(setq sel1 (ssget "X" '((8 . "VPOINTS"))))
(setq TC (polar (entget (assoc 10 (ssname sel1 0))) (dtr 180.0) 9))
(command "DIMLINEAR" (entget (assoc 10 (ssname sel1 0))) (entget (assoc 10 (ssname sel1 1))) "V" (polar TC (dtr 180.0) 9) "")
[code].......
I am trying to create a lisp routine, that will check the dimension style "standard" to see if its annotative. If it is, I need it to turn annotative to off.
ITO - Application Management
Factory Design Suite Ultimate 2012
AutoCAD 2012 | Inventor Professional 2012 | Vault Professional 2012
I there any way to set the dimension break size in autolisp ?
View 1 Replies View RelatedAs a consultant we grey out architectural backgrounds for our sheets. We use the SetByLayer command to change the color of the objects in our sheets to gery out. The issue is with dimsensions. Dimension Line Color, Extension Line Color, and Text Color are all set at By Block as default and no one ever bothers to change it unless they are setting it to a specific color which is even more of a problem for us. You can edit the properties of an existing dimension and set Dim Line Color, Ext Line Color, and Text Color to by layer, I am looking for a way to automate this. Something that can search through a drawing, grab all the dimensions (even in blocks) and set everything by layer.
View 9 Replies View Relatedif my attach lisp can add sort of counter that how many dimensions, leader and multileaders have been move to layer "dimension"...
View 9 Replies View RelatedI'm dimensioning an old drawing with the real (measured) dimensions and with the drawing dimensions in brackets (using ' 1500 (<>)' to give '1500 (1505)' for example.
What I'd like is to also be able to put on the difference between the length I type in and the length in brackets - as this would let me see any really glaring errors that can't be attributed to user-error on the laser measure.So I could type in '1500 (<>) (X)' where X is the formula, and get ' 1500 (1505) (5)' back?
How to be able to run a script that could highlight any dimensions where the number is brackets and the typed number have a a difference of, say, 50.Or failing that, any way to extract all the dimension text at the end into excel so I can see the differences myself?
Found this routine online and am hoping to modify it to my needs, just not sure how to proceed.
It exports the text out of the dims into an excel file, the issue I have is that it automatically opens a new book every time you run the lisp with the original workbook open.
I am trying to get it to automatically insert the next set of numbers on the row below the first pull.
Currently, when I do drawings, I give my machinists drawings with each point, and they program their machines. To do that, they calculate the round part diameters, which is basically 5" - 2x<Dim>.
I'd like it if I could give them drawings with the real number, and in parenthesis next to it, 5-2x<Dim>.
I've attached a jpg of what I normally give them and how I'd like it to look. Is this something do-able via a macro or something?
Is there a command or a lisp that will automatically dimension each side of a closed polyline at once? See attachment for image.
View 1 Replies View RelatedHow to write an AUTOLisp program to label building dimensions. With Civil3d 2013 preventing me from labeling multiple lines at once, creating building labels to dimension complex building exteriors is much more complicated than it needs to be. Lisp Routine that Generates a MText or Dtext dimension centered on a line and offset to be clear of the line. the layer for this piece of text would always be "DIMS-BLDG" and the text style will always be "L50s."
the text doesn't have to be organized as it is in this example. the main focus is the layer being correct with the foot mark, precision set to xx.x and oriented to the line.