I have a client who requested some complex custom linetypes. (line - shape - line)
I built the shapes and stored them in my ltype.shp file, and compiled that to ltype.shx. Then I added the custom linetypes in my acad.lin file. So everything works on my machine with no problem. However, when I send the drawing to someone else, the linetype works, but the shapes are left out. My guess is that since her ltype.shx file does not contain my new shapes, the lines are just drawn without them.
Is there a way that I can have those linetypes, complete with shapes, ride along inside/embedded the dwg file?
And before you ask, no, it's not an option to provide the client with the shx file that contains these shapes. I'm one of many different people in many different companies that might work on these drawings in the future and there's just no way that they'll be able to send an shx file along with the drawing every time someone new needs to work on it.
I'm trying to update a template which has custom drawing properties. In AutoCad LT 2012 (and obviously full autocad) there is an UPDATEFIELD command which updates the drawing properties.
This command is not known in my version of AutoCad LT 2008. Is there another command I can use?
I would like to select all instances of a block, and put a new block on top of them using the same properties (insertion, rotation) but am unsure how to do this
I am looking for code that will delete all the properties within a DWG file.
Searching the forum, I found the following
; Remove any existing Properties (dictremove (namedobjdict) "DWGPROPS")
However, further research (forum, testing and help system) indicates that it no longer applies to current releases of AutoCAD so my initial happiness was short-lived!
I need a program to move some selected text to a line something like as extend command but for text objects!
suppose that there is a horizental line (y=constant) or vertical line (x=constant) and some selected text(or other objects), I want a lisp program that move these selected text (or objects) by their "insertion point" to this line.
in other word, if the selected base line is horizental (y=constant) then property of "Y" of all selected text should change to line's "Y"; and if selected base line is vertical (x=constant) then value of "X" of all selected text should match to line's "X" value.
for example, for base vertical line (x=constant) and 3 selected text(or can be any object) result is:
Any lisp routine on how to change "Drawing Properties" (fields via Mtext) on multiple single drawing files?
There are several instances where we would need to take a project to create another one and simply change the title block description.
As of now, we are opening each drawing (there could be hundreds) and modifiying the drawing properties on each drawing to change the customer name and other project descriptions.
These are not attributes, but fields. I've researched alot on here and couldnt find anything.
I'm trying create a LISP to customize PDF creation. The lisp looks into the .PC3 file which paper size better fits the plot area. But its exaustive to every time i want to create a new paper size i have to open the .pc3 file and configure a new paper.
There is a way to open the .pc3 properties through lisp?
I'm looking for a lisp routine that i can globally change the text height and width factor of a particular block attribute. The name of the attribute tag is "TAG". I would like to be able to select all the blocks that i need to edit and then specify what text height and width factor i want to change to.
I've been looking for commant that will allow me to copy a selection of entities to another layer for details. I'll need to be able to select several objets all at once and have each of them maintain the correct colors, linetypes, lineweights. Most everything is set as bylayer but that makes everything change once the objects are moved to a new layer.
How can I keep the everything looking like it never changed except for the fact that it will be moved to a new layer - layer 0 in this situation?
I would like to create a lisp that does the following:
Update a titleblock attribute with a $variable.
The titleblockname is variable / not static.
The attribute is not variable / Static, DW_SCALE
The titleblock is always places on the same layer, BL$4----
The (custom)-plotscale is stored in the $var "gvpsc".
I've tried to ajust the following lisp code. But I couldn't extract the part I need.
The problem is, the code checks all the layouts and updates all the titlblocks one by one.
Truely a good code.
The only problem is, I don't have multiple layouts and I have a variable titleblock name.
Here is to code i've tried to convert to something I could use.
(defun C:UPD-DPC () (setvar "cmdecho" 0) (setq blkname "DPC-STEMPEL");(getstring " Enter the name of block to update: ")) (setq att1 "DW_DATE");(strcase(getstring " Enter the name of the attribute to change: "))) (setq newatt (strcase(getstring "
i am working on writing a lisp to update several similar drawings through a .bat file. One of the things i would like to do is to automatically increase the revision number by one. I have figured out everything except how to select the text. Looking at the database, the coordinates for the revision number are (10 15.2908 0.0295 0.0). However, (setq a (ssget "x" '((0 . "TEXT,MTEXT")(10 15.2908 0.0295 0.0)))) returns nil.
If each drawing's revision number is not in the exact same location, is it possible to select by a range of coordinates? Using (getpoint), the range is from (15.5 0.0 0.0) to (15.1805 0.1409 0.0).
I'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'm trying to find a routine that will look for ABC block and updates its NUM attributes depending on what's shown in the DESC attribute. There are about 5 of these ABC blocks in a drawing. Block ABC has 2 sets of attributes: DESC and NUM.
When run, it will look at the value of tag DESC, if it contains value XXX, then it will change the NUM value to 1111. And if DESC contains value YYY, then it will change the NUM value to 2222.
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.
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?
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?
I am trying to customize my quick properties (acad.cuix), but i keep on receiving fatal error message. And when i click on quick properties it is all blank. Also, the Properties dialogue box is not working when i click on something, the properties do not appear on the Properties dialogue box. Attached is the error message.
I want to make a keyboard shortcut that will turn on/off my osnap, polar, and otrack.I would be fine with setting F3 to do this, or any other key really.I like to be able to turn these off on the fly, but it is getting old having to press all three.
I've successfully written a lisp routine to insert a scale bar dynamic block with attributes, gather the object id of a user selected viewport, and write fields to attributes for each of the numbers across the top of the typical scale bar as well as the scale name, for both architectural and civil units. I'm trying to come up with a similar dynamic blocklisp routine combination to do the same with view titles, and the associated scale callout. The catch in this case is that I'd like to display the scale as "NTS" if it isn't a proper scale. The "standardscale" object property option in the field dialog box gives me almost exactly what I want, except that non-standard scales are displayed as "CUSTOM" as opposed to "NTS". Moreover, I’d like this to update on the fly, if the viewport scale changes, the scale callout needs to change also, back and forth from “NTS” to a standard scale if need be.
is there a way to change that (CUSTOM NTS)? My research online seems to indicate that the nuts and bolts of fields are deeply rooted in ObjectARX, which is something I know very little about?
The natural followup to that question is, if I can't change "CUSTOM" to read "NTS", is there a way to wrangle this whole thing with reactors? I'm envisioning object reactors, created as a part of the insertion routine, for each individual instance of the block (there could very well be several in a layout, and multiple layouts in detail drawings), that would call another routine to evaluate the viewport scale, and if it didn’t match a list of standard scales, write NTS to the attribute. My issue is that reactors seem to only associate with one object, in this case that’d be the viewport, the reaction would cause the reactor to call the routine, but how does the routine know which block to update? Is there something from the viewport properties that I can add to the block name (or some other property) which will allow the routine to figure out which block to edit?
I’ve attached my scale bar code, and block, as reference context for how I plan to set the view title up.
I use DwgProps > Custom tag to log revisions to our company templates.Then when trouble shooting CAD issues I can look at what template rev level the drawing was started from.
Is there anyway that DwgProps can be removed from the drawing?
I am not looking for a solution to do this... I just wondered if there could be someway a particular drawing file might have somehow lost the DwgProps > Custom entries.
I'm trying to get familiar with AutoCAD. Google and didn't manage to solve a problem :
In AutoCAD LT 2013, I created a custom command called Special fillet :
Name : Special filletDescription : Round a polylineCommand display name : SFILLETMacro : ^C^C_fillet;p;r;0.1
I created two aliases at the end of acadlt.pgp :
SF, *SFILLET C, *COPY
When i type C, it works fine (just a test) but although it appears correctly in the Command prompt, SF doesn't work and it keeps telling me : UNKNOWN COMMAND "SF"
Last thing, if I create an icon in a toolbar with the special fillet command : it works fine...
I have tried everything even un-installing and re-installing. I have customized programs that have been working properly for months by many individuals. These include custom menus, toolbars and ribbon tabs. One day last week one of the ribbon tabs disappeared. The crazy thing is if I load the .cuix file as an Enterprise cui, everything is visible and works just fine. BUT, when I load it as a partial cuix file the ribbon tab does not show up. The custom menus come in, my custom toolbars work and show up just fine but the dag blasted ribbon tab won't show up.
Yes, it's marked as visible. I've done and redone the cui editor, customized my workspace again and again checking every piece of information. I need to have it loaded as a partial cui file as I am the author of these tools that hundreds of people in my company depend on.
I have a little dialog box with seven radio buttons and a text box that generically accomplishes what it's supposed to do. To retain the current dialog values, I use the write-lline function to store the information and then use read-line to bring that information back in for other Lisps that I use. As long as the user doesn't open the dialog, whatever options were last selected will remain in effect.
However, if the user re-opens the dialog, then whatever defaults I have initially set up in the dialog will then become active (in other words, whichever of the radio buttons I have set to "1")
My question is whether or not I can have the dialog box set up so that if a user selects an alternate radio button, that radio button will keeo it's value whether or not the dialog is opened and until and if the user changes it..
As it is now, whenever the user opens the dialog box to change, say one radio button, the user then has to change the other radio buttons if the defaults don't match the current run requirements.
I am trying to put together a lisp routine for exporting a Civil3D drawing to basic autocad entities and convert it to a clients layer standards.
I don't want any user input, so I see two problems with the routine at the moment.
Step 2. SAVEAS - I want the drawing to be saved in the same directory as the current drawing, either called "CLIENT_export.dwg" or preferably "Export_{current drawing name}.dwg". If the dwg exists I want it either to overwrite or increment a suffix number.
Step 4. At the moment it askes the user for a selection, I want it to select "ALL"
;;;Purpose to convert a Civil3D drawing into CLIENT layer standards.