AutoCAD .NET :: How To Mimic Block Definition Save As Function
Aug 30, 2012
How to mimic Block Definition Save As function.
So far what I have found in this forum and TheSwamp the best way is to use DeepClone of BlockTableRecord but the objects in original BlockTableRecord need to be DeepCloneObjectes into new block. Otherwise new block will have all objects with ObjectId from old BlockTabkeRecord.
I'm trying to build a command to replace AutoCAD's "DI" command, to give distance and delta x, y, and z values in decimal and imperial, and keep the angles in XY plane and out of XY plane.
In most cases this works well. However I found a case that it not work as well. When I try to change the definition from a new block that I have created in my test DWG, it disappears from the model.
The error below has appeared randomly when AutoCAD 2011 is started. There was not an error of this sort, but it suddenly appeared and some of the LISP routines will no longer work.
*Invalid attempt to access
a compiled function definition. You may want to define it using defun-q:
There is no other mention of STRNUM in the whole of the lisp.
There is an accompanying setvars.dat, wherein apparently, the writer compiled a data file of all the system variables in AutoCAD2008, each variable being followed by an '=' and then a description of the variable.
If necessary I can post the whole lisp and dat file, but was hoping to discover the intention from the above extract and therfore where I might work out an alternative to this line.
Looking to turn a string to a real? If so, why are there two 'arguments' following the 'function' STRNUM?
I have a question regarding parameters in a block definition, or more specifically how to constrain parameters. I have attached a PDF showing exactly what I am working on. Basically I have an arm for a monitor which I need to add some parameters to. I need to be able to have a point that I can grab where the "primary grab" is located, and when I grab that I need the arm to pivot at the indicated pivot point, but be restrained by the first arm that is constrained to the circle. Is this possible to do in AutoCAD?
Is there any way not to show a particular block in block definition table ? My program bring a block into drawing thru a user form . And set some Xdata to it after insertion . If user bring the block manually into drawing then how would we know which one has xdata and which one doesn't. I came to this solution to hide it in block definition list.
how I can get VBA to insert/redefine a block reference from another file into a block (of the same name) that already exists in the target drawing?
I've tried using the insertblock method but it produces a 'filer error' - As a bonus point, it'd would also be good to be able to retrieve the contents of the blocks collection in the source drawing in some clever way other than opening it (a bit like browsing using the design centre) ?
ACad, MEP, 3DS Max Windows 7x64 X5482 @3.2Ghz 8Gb Ram Quadro FX1700
I need to remove lines from a block definition and replace them with LWpolyLines. I see there is a way to Append entities to a BlockTAbleRecord but I don't see a way of removing an entity.
I am wondering what Block Authoring actions i can use to move my Attribute Definitions up and down in a Dynamic Block. I understand duplication the definitions can get really ugly.
So i want to be able to have a second visibility tab in my block the nwhen i select it my Attribute Definitons insertion point moves to another co-ordinate with in the block.
How to do this so it doesn't ask for a block definition!
I have an extruded region of 50 x 50 (SHS) that I want to put a 45 degree mitre on, so I orientate my UCS to ortho, I have a reference line drawn over the job for my 45 degree/3 points to pick...
I Select 'both' to keep and it asks me for a block definition?
I have a large symbols library and need to have 1 block name and count but be able to show them in different colours depending on where they are placed. (eg pink block at low level and green at high level, but when counted by block name it counts 2 not 1 green 1 pink).
I have a small vba sub wich changes the color and layer of all entities inside a block. It seems to work pretty well for the majority of blocks, but then if I try that on a dynamic block, the definition is correctly altered, but the references aren't updated...
I know for a fact that the definition has been correctly modified because if I type bedit, I can see the definition is modified. Then, in the block editor, if I save the block, the references are correctly updated.
How to force references to update after I made the modifications inside the definition ?
I searched for methods within the VBA Reference and I tried blockRef.Update but it doesn't seem to have any effect.
What order of operations do you use to include multiple attributes in a WBlock definition? I can't figure out to include all of attributes and have them in a specific order.
I am trying to assign a plotstyle to attribute while creating a block. First I create the block, then I insert the Blockref, in that process I have errors assigining a plotstyle to the attribute. (I have also tried to assign the plotstyle while creating the block and attribute with poor results.)
Here is my attempt to do this:
For Each objId As ObjectId In blkTblR Dim obj As DBObject = objId.GetObject(OpenMode.ForRead) If TypeOf obj Is AttributeDefinition Then
I'm having trouble getting my attribute definitions to work with my blocks.
I'm trying to create a tag that can flip around (dynamic) and have a tag number easily entered (attribute).
I notice that I could only get the attribute definition to work during a drawing insertion is when I wblocked out my block and inserted that drawing file. I was not able to insert the drawing file that had the block in it.
I can't seem to make a dynamic block drawing file, and then insert that dynamic block drawing file if I want the attribute to work..
Is there a short cout to getting to the source drawing file containing block data? Drilling down into the Program Files folder is tedious in the heat of getting drawings done.
I've got a drawing from a client, I've created a layer and I'm adding MTEXT to the drawing. Rather than creating a new MTEXT every time, I copy and paste the previous one and edit.
It works for a bit then out of the blue, it will give me that error after there's about 16 copy/pastes.
_pasteclip Duplicate definition of block _ArchTick ignored.
I don't understand what _ArchTick is or how I can get around this error?
I want to determine the size of a (non-dynamic non-annotative) block definition (BlockTableRecord). Does a block have a boundry or limits? For example, if the block would contain a simple square, the size of the block would be equal to the size of the square.
Presently if I insert a block into my drawing - and a block with the same name exists - the newly inserted block takes on the definition which exists in the receiving drawing . How do I reverse this i.e. I want to be able to overwrite the existing block definition by inserting the new wblock version.
I have several existing block definitions and need to change the insertion point. Also, when creating a new block in the Block Editor, how do I define the insertion point?
2014. In help, it says to "Click Insert tab-Block Definition panel-Manage Attributes" In my display, when clicking the Insert tab, I only have a "Block" panel, not a "Block Definition" panel. Trying to get to the Sync command.
1. What is the easiest way to find points that are not constrained? I get a notice that the block is not fully constrained and its a nightmare going through all the lines trying to find where I need to apply a constarinet.( I can't wait to get off ACAD and back to Inventor.)
2. When I try to save a dynamic block using the Save Block icon under Open/Save, if the dynamic block is not fully constrained, and I click save, when I reopen the block to edit all of my constraints are gone, this has happened twice. Now I just exit by Xing out and saving changes.
So i have a simple block of basically a point. i also have alot of points to input. I know i can attribute the block with promts such as levels or dates etc.. but is there a way to make the block do this by itself when level is already entered? also is there a way to insert multiple block (like the points) using excel concatenate function? or can i input the points and have date and level shown in a text form?
Running CAD Arcitecture 2010 and I am not able to use the "save-as" function to save as a dwg file. Using the the same down-load disk I have not had any problem with "save-as" on my laptop.