70002561 Create block from existing entities

Article 70002561
Type HowTo
Product WebJS
Version 11
Date Added 9/3/2024 12:00:00 AM
Fixed 11.2.3.0 (9/3/2024 12:00:00 AM)
Submitted by Brendan Fry

Summary

Example of select existing entities and create a block from them and replacing the existing entities with the newly created block

Solution

          
 vdcanvas.scriptCommand.select(null, function (_vdcanvas) {
                var selectedEntities = _vdcanvas.scriptCommand.ActiveSelection();
                if (!selectedEntities || selectedEntities.length == 0) return;
                var blk = _vdcanvas.AddBlock("mycustomblock");
                for (var k = 0; k < selectedEntities.length; k++) {
                    var fig = selectedEntities[k];
                    var clone = vdConst.cloneEntity(fig); //add the clone of the existing object to the block entities
                    clone.HandleId = 0;//importand .Set the handle as undefined
                    var ret = _vdcanvas.AddFigureToCollection(blk.Entities, clone);
                    fig.Deleted = true; //delete existing object
                }
                var vdinsert = _vdcanvas.AddBlockSymbol("mycustomblock", [0, 0, 0], 1, 0); //insert the new created block at the same position
                setTimeout(_vdcanvas.redraw);
            });
 

Send comments on this topic.