To Zoom in to an AutoCAD Entity
This AutoCAD JavaScript tutorial demonstrates how to register a new transparent command and zoom to the extents of a selected object.
In this tutorial you will,
Register a custom command using the
addCommand
functionPrompt the user to select an object
Get the extents of the selected object using the
getExtents
functionZoom to the extents of the selected object with
zoomExtents
functionUse the following JavaScript code to create a command to zoom to the extents of a selected entity:
// Define the callback function for the custom command function zoomEntity() { try { // Set the options and prompt to use var peo = new Acad.PromptEntityOptions(); peo.setMessageAndKeywords("\nSelect an object: ", ""); peo.allowObjectOnLockedLayer = true; // Prompt the user to select an object Acad.Editor.getEntity(peo).then(onComplete, onError); } catch(e) { console.log(e.message); } } // If the getEntity function was successful, not necessarily that they selected an object function onComplete(jsonPromptResult) { try { // Parse the JSON string containing the prompt result var resultObj = jsonPromptResult; if (resultObj && resultObj.status == 5100) { // If an object was successful selected, get the selected entity... var entity = new Acad.DBEntity(resultObj.objectId); // Get the extents of the entity entity.getExtents().then(ext,onError); } } catch(e) { console.log(e.message); } } // Zoom to the extents of the entity, choosing to animate the // view transition (if possible to do so) function ext(arg) { try { var minPoint3d = new Acad.Point3d(arg.minPoint3d.x,arg.minPoint3d.y,arg.minPoint3d.z); var maxPoint3d = new Acad.Point3d(arg.maxPoint3d.x,arg.maxPoint3d.y,arg.maxPoint3d.z); Acad.Editor.CurrentViewport.zoomExtents(minPoint3d, maxPoint3d, true); } catch(e) { console.log(e.message); } } // General message to display if an error occurred during object selection function onError(jsonPromptResult) { console.log("\nProblem encountered."); } // Register the custom command, as transparent Acad.Editor.addCommand( "ZOOM_CMDS", "ZEN", "ZEN", Acad.CommandFlag.TRANSPARENT, zoomEntity ); // Display a message in the AutoCAD Command line window console.log("\nRegistered ZEN command.\n");
Save the file as ZoomEntity.js.
At the AutoCAD Command prompt, enter webload and then press enter again to use the Load option.
At the
Enter javascript URL to load:
prompt, enter the URI to the ZoomEntity.js file.At the AutoCAD command prompt, enter zen.
Select an object for which you want to zoom to its extents.