Unpack
Plugin for AutoCAD and BricsCAD AVC_Unpack.
Search for blocks in which only one part is packed (solid, polyline...). Explosion of these blocks.
Transferring the name and attributes of the block to the part.
Some engineering programs (like CreoElements or SolidWorks) pack each part into a separate block. If you sometimes work with DWG files exported from such programs, then the Unpack command may be useful to you. Solids wrapped in a block are inconvenient to modify, it is impossible to resize several parts at once, it is inconvenient to change properties. And all other A>V>C> commands perceive such blocks as assemblies or refuse to work with them at all. To work with the details, you need to explode blocks. But you need to keep the real assembly blocks. And you need to transfer the block name to the part name. The Unpack command will do this job for you.
Main features and limitations of the program:
Select matching blocks containing only one object. It can be anything: solid, line, curve ...
Block attributes are not counted as objects, a block with many attributes, but only one solid will also be exploded.
You can explode blocks nested in other assembly-blocks. Nesting levels are not limited. Your assemblies will not be exploded, unpacking will only work for the last nesting level.
The block name will be written into the entity name. This name will be visible in the A>V>C> Properties palette and can be used on Smart Leaders and all other A>V>C> commands. But you can reconfigure the program and write the block name in the Kind, Info properties, and even in the layer name. This way the program can create layers for each source block.
If the object layer is "0", then it will be replaced by the block layer. And if that one is also "0", then the default layer (the CLAYER system variable) will be used.
If object properties are By Block, then they will be replaced by block properties. This will work with Color, Material, Linetype and Lineweight.
If the block has the attribute Type or Kind or Class, then it will be written to the Kind property (see A>V>C> Properties Palette). Only one (the first available) attribute is recorded.
If the block has a Material attribute, a new render material will be created and assigned to the object.
If the block has other attributes, all of them will be written to the Info property (see A>V>C> Properties palette)
If a solid is packed in a mirrored block, a "Mirror" mark will appear in the unpacked part.
If there is a point object (DBPoint) in the unpacked block, it will be ignored.
Blocks without objects and blocks containing only attributes and points are destroyed.
The program works with external references (xRef) and unpacks the blocks in them. The xref block itself will not explode.
The program will not explode objects from locked layers, will not touch objects in unnamed blocks of arrays.
You can prevent some blocks from exploding by turning off their Explodable property. This can be done when creating a block or later, using the A>V>C> Properties palette.
Dynamic blocks and annotative blocks are not processed.
Read about downloading and installing the program here.
You can download and use the program for free. If the program really helps you, please donate a small amount.
The Unpack command is included in the collections A>V>C> Kit and A>V>C> Pro.
If you are not satisfied with the behavior of the program, there are suggestions for optimization and tuning for your needs - feel free to write to me. Just don't forget to motivate me.
Screencast: https://autode.sk/3daNatV
Operating procedure
Select blocks in advance. You can select the entire drawing. Unnecessary objects (not blocks) will be ignored.
Call the UNPACK command.
If nothing is selected in advance, the program will ask you to select blocks. In the prompt, you will see the Destination option.
Destination - the option allows you to select which property of the unpacked object the name of the source block should be written to. You can choose one of the options: Name, Kind, Info or Layer. In the latter case, a new layer will be created for each source block.
On the command line, you will see how many blocks have been unpacked.