Draw Jig allows you to create jig for multiple entities
How it work?
Draw Jig Class is AutoCAD inbuit abstract class, we have to write our own code to create jig using this class
Similar to Entity Jig, draw jig also contain 3 parts
construtor
Sampler Method contain code to get jig input from user and return SampleStatus as output
WorldDraw method update our Entity if successful results are given by user in Sampler Method
Sample Code
publicstaticclassCommands{[CommandMethod("Test", CommandFlags.UsePickSet)]publicstaticvoidTest(){try{using(Transactiontransaction=ActiveUtil.TransactionManager.StartTransaction()){//Code to draw two circles based on base pointvarbasePoint=newGeometry.Entities.Point2D();varcircle1=newCadCircle(basePoint,10);circle1.Append();varcircle2=newCadCircle(basePoint,20);circle2.Append();varcircles=newList<CadCircle>{circle1,circle2};// Jig It.SimpleGeometryJigjig=newSimpleGeometryJig(circles,basePoint);PromptResultres=ActiveUtil.Editor.Drag(jig);//code to adjust it's positiontransaction.Commit();}}catch(System.Exceptionex){Application.ShowAlertDialog($"Something went wrong error:{ex.Message}");}}}publicclassSimpleGeometryJig:DrawJig{privateList<CadCircle>_circles;privatePoint3d_currentPosition;publicSimpleGeometryJig(List<CadCircle>circles,Point2DbasePoint){_circles=circles;_currentPosition=newPoint3d(basePoint.X,basePoint.Y,0);}protectedoverrideSamplerStatusSampler(JigPromptsprompts){JigPromptPointOptionsjigOpt=newJigPromptPointOptions("select insertion point");jigOpt.UserInputControls=UserInputControls.Accept3dCoordinates;PromptPointResultres=prompts.AcquirePoint(jigOpt);if(res.Status!=PromptStatus.OK){returnSamplerStatus.Cancel;}if(res.Value.IsEqualTo(_currentPosition,newTolerance(0.1,0.1))){returnSamplerStatus.NoChange;}_currentPosition=res.Value;returnSamplerStatus.OK;}protectedoverrideboolWorldDraw(WorldDrawdraw){try{foreach(varcirclein_circles){circle.Circle.Center=_currentPosition;draw.Geometry.Draw(circle.Entity);}returntrue;}catch(System.Exception){returnfalse;}}}