<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: RectangleJig Question in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/9020977#M29468</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/3011731"&gt;@BKSpurgeon&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Would you be able to elaborate on what Matrix3d.WorldToPlane(plane) method is doing?&lt;/P&gt;
&lt;P class="Element10"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="Element10"&gt;(If a tranformation matrix is return from this method, and if it describes how to convert from one coordinate system to another, how can it work? (Because when a plane is defined: a normal vector and an origin is enough to define it - meaning that the x and y axis can be pointing anywhere - so am confused as to what it is doing, and how it will work. )&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;To define a coordinate system given a normal vector (Z axis), AutoCAD uses the "&lt;A href="https://help.autodesk.com/view/OARX/2019/ENU/?guid=GUID-E19E5B42-0CC7-4EBA-B29F-5E1D595149EE" target="_blank" rel="noopener"&gt;Arbitrary Axis Algorithm&lt;/A&gt;".&lt;/P&gt;</description>
    <pubDate>Thu, 12 Sep 2019 08:33:07 GMT</pubDate>
    <dc:creator>_gile</dc:creator>
    <dc:date>2019-09-12T08:33:07Z</dc:date>
    <item>
      <title>RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7412563#M29451</link>
      <description>&lt;P&gt;any one help me to write a class to draw rectangle&amp;nbsp; and can user &lt;U&gt;&lt;STRONG&gt;determine the base point, angle and dimension&lt;/STRONG&gt;&lt;/U&gt; during dragging .&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 09:01:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7412563#M29451</guid>
      <dc:creator>Amremad</dc:creator>
      <dc:date>2017-09-27T09:01:59Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7414033#M29452</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's a little example.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using static System.Math;
using AcAp = Autodesk.AutoCAD.ApplicationServices.Core.Application;
using AcGi = Autodesk.AutoCAD.GraphicsInterface;

[assembly: CommandClass(typeof(RectangleJigSample.Commands))]

namespace RectangleJigSample
{
    public class Commands
    {
        [CommandMethod("TEST")]
        public void Test()
        {
            var doc = AcAp.DocumentManager.MdiActiveDocument;
            var db = doc.Database;
            var ed = doc.Editor;
            var ppr = ed.GetPoint("\nSpecify first corner point: ");
            if (ppr.Status != PromptStatus.OK)
                return;
            var pt = ppr.Value;
            using (var tr = db.TransactionManager.StartTransaction())
            using (var pline = new Polyline(4))
            {
                pline.AddVertexAt(0, new Point2d(pt.X, pt.Y), 0.0, 0.0, 0.0);
                pline.AddVertexAt(1, new Point2d(pt.X + 1.0, pt.Y), 0.0, 0.0, 0.0);
                pline.AddVertexAt(2, new Point2d(pt.X + 1.0, pt.Y + 1.0), 0.0, 0.0, 0.0);
                pline.AddVertexAt(3, new Point2d(pt.X, pt.Y + 1.0), 0.0, 0.0, 0.0);
                pline.Closed = true;
                pline.Elevation = pt.Z;
                var ucs = ed.CurrentUserCoordinateSystem;
                pline.TransformBy(ucs);

                // create a RectangleJig
                var rectJig = new RectangleJig(pline, 0.0);

                // Loop while the user specify other corner or cancel
                while (true)
                {
                    var pr = ed.Drag(rectJig);
                    // Other corner is specified
                    if (pr.Status == PromptStatus.OK)
                    {
                        var curSpace = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
                        curSpace.AppendEntity(pline);
                        tr.AddNewlyCreatedDBObject(pline, true);
                        break;
                    }
                    // Rotation option
                    if (pr.Status == PromptStatus.Keyword)
                    {
                        // use a RotationJig to get the rectangle rotation
                        var rotJig = new RotationJig(pline, pline.GetPoint3dAt(0), pline.Normal);
                        var result = ed.Drag(rotJig);
                        if (result.Status == PromptStatus.OK)
                            rectJig = new RectangleJig(pline, rotJig.Rotation);
                        else
                            break;
                    }
                    // Cancel
                    else
                        break;
                }
                tr.Commit();
            }
        }
    }

    public struct Rectangle
    {
        public Point2d Point0 { get; }
        public Point2d Point1 { get; }
        public Point2d Point2 { get; }
        public Point2d Point3 { get; }

        public Rectangle(Point2d firstCorner, Point2d oppositeCorner, double rotation)
        {
            Vector2d u = new Vector2d(Cos(rotation), Sin(rotation));
            Vector2d v = new Vector2d(-Sin(rotation), Cos(rotation));
            Vector2d diag = firstCorner.GetVectorTo(oppositeCorner);
            Point0 = firstCorner;
            Point1 = firstCorner + u * u.DotProduct(diag);
            Point2 = oppositeCorner;
            Point3 = firstCorner + v * v.DotProduct(diag);
        }
    }

    public class RectangleJig : EntityJig
    {
        Polyline pline;
        double ucsRot, rotation;
        Plane plane;
        Point3d dragPt, basePt;
        Point2d pt2D;
        Editor ed;
        CoordinateSystem3d ucs;

        public RectangleJig(Polyline pline, double rotation) : base(pline)
        {
            this.pline = pline;
            this.rotation = rotation;
            plane = new Plane(Point3d.Origin, pline.Normal);
            basePt = pline.GetPoint3dAt(0);
            pt2D = pline.GetPoint2dAt(0);
            ed = AcAp.DocumentManager.MdiActiveDocument.Editor;
            ucs = ed.CurrentUserCoordinateSystem.CoordinateSystem3d;
            Matrix3d mat = Matrix3d.WorldToPlane(plane);
            ucsRot = Vector3d.XAxis.GetAngleTo(ucs.Xaxis.TransformBy(mat), Vector3d.ZAxis);
        }

        protected override SamplerStatus Sampler(JigPrompts prompts)
        {
            var msg = "\nSpecify other corner point or [Rotation]: ";
            var options = new JigPromptPointOptions(msg, "Rotation");
            options.AppendKeywordsToMessage = true;
            options.UseBasePoint = true;
            options.BasePoint = basePt;
            options.UserInputControls =
                UserInputControls.Accept3dCoordinates |
                UserInputControls.UseBasePointElevation;
            PromptPointResult result = prompts.AcquirePoint(options);
            if (result.Status == PromptStatus.Keyword)
            {
                pline.TransformBy(Matrix3d.Rotation(-rotation, pline.Normal, basePt));
                return SamplerStatus.OK;
            }
            if (result.Value.IsEqualTo(dragPt))
                return SamplerStatus.NoChange;

            dragPt = result.Value;
            return SamplerStatus.OK;
        }

        protected override bool Update()
        {
            var rectangle = new Rectangle(pt2D, dragPt.Convert2d(plane), rotation + ucsRot);
            pline.SetPointAt(1, rectangle.Point1);
            pline.SetPointAt(2, rectangle.Point2);
            pline.SetPointAt(3, rectangle.Point3);
            return true;
        }
    }

    public class RotationJig : DrawJig
    {
        Entity entity;
        double rotation;
        Point3d basePoint;
        Vector3d normal;

        public double Rotation =&amp;gt; rotation;

        public RotationJig(Entity entity, Point3d basePoint, Vector3d normal)
        {
            this.entity = entity;
            this.basePoint = basePoint;
            this.normal = normal;
        }

        protected override SamplerStatus Sampler(JigPrompts prompts)
        {
            var options = new JigPromptAngleOptions("\nSpecify rotation angle: ");
            options.BasePoint = basePoint;
            options.UseBasePoint = true;
            options.Cursor = CursorType.RubberBand;
            options.UserInputControls =
                UserInputControls.Accept3dCoordinates |
                UserInputControls.UseBasePointElevation;
            var result = prompts.AcquireAngle(options);
            if (result.Value == rotation)
                return SamplerStatus.NoChange;
            rotation = result.Value;
            return SamplerStatus.OK;
        }

        protected override bool WorldDraw(AcGi.WorldDraw draw)
        {
            AcGi.WorldGeometry geom = draw.Geometry;
            if (geom != null)
            {
                geom.PushModelTransform(Matrix3d.Rotation(rotation, normal, basePoint));
                geom.Draw(entity);
                geom.PopModelTransform();
            }
            return true;
        }
    }
}
&lt;/PRE&gt;</description>
      <pubDate>Wed, 27 Sep 2017 17:12:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7414033#M29452</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2017-09-27T17:12:00Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7414656#M29453</link>
      <description>&lt;P&gt;My sample with dynamic dimensions:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;    using System;
    using Autodesk.AutoCAD.Runtime;
    using Autodesk.AutoCAD.ApplicationServices;
    using Autodesk.AutoCAD.DatabaseServices;
    using Autodesk.AutoCAD.Geometry;
    using Autodesk.AutoCAD.EditorInput;
     
    #pragma warning disable 0618
     
    // This line is not mandatory, but improves loading performances
    [assembly: CommandClass(typeof(TestDrawJigWithDynDim.MyCommands))]
     
    namespace TestDrawJigWithDynDim
    {
      public class MyCommands
      {
        [CommandMethod("TestDrawJig")]
        public void MyCommand() // This method can have any name
        {
          Document doc = Application.DocumentManager.MdiActiveDocument;
          Database db = doc.Database;
          if (doc == null) return;
          Editor ed = doc.Editor;
          Matrix3d mat = ed.CurrentUserCoordinateSystem;
          PromptPointResult res = ed.GetPoint("\nУкажите базовую точку: ");
          if (res.Status == PromptStatus.OK)
          {
            Point3d basePt = res.Value.TransformBy(mat);
            DrawJigWithDynDim jig = new DrawJigWithDynDim(basePt, 500, 500);
            if (jig.DragMe() == PromptStatus.OK)
            {
              Point3dCollection pts = new Point3dCollection();
              pts.Add(basePt);
              pts.Add(basePt + new Vector3d(0,         jig.height, 0));
              pts.Add(basePt + new Vector3d(jig.width, jig.height, 0));
              pts.Add(basePt + new Vector3d(jig.width,      0,     0));
              using (Polyline3d poly = new Polyline3d(Poly3dType.SimplePoly, pts, true))
              {
                using (BlockTableRecord btr = db.CurrentSpaceId.Open(OpenMode.ForWrite) as BlockTableRecord)
                {
                  btr.AppendEntity(poly);
                }
              }
            }
          }
        }
      }
     
      public class DrawJigWithDynDim: DrawJig
      {
        private DynamicDimensionDataCollection dimCol = new DynamicDimensionDataCollection();
        private Point3d basePt, prevPt;
        public double width  = 100, height  = 100;
        private double minWidth = 100, minHeight = 100;
        private bool bFixWidth  = false;
        private bool bFixHeight = false;
        public DrawJigWithDynDim(Point3d pt, double w, double h)
        {
          basePt = prevPt = pt; width = w; height = h;
        }
        public PromptStatus DragMe()
        {
          Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
          Database db = Application.DocumentManager.MdiActiveDocument.Database;
          Point3d p1 = basePt;
          Point3d p2 = basePt + new Vector3d(width, 0, 0);
          Point3d p3 = basePt + new Vector3d(0, height, 0);
          AlignedDimension dim1 = new AlignedDimension();
          dim1.DynamicDimension = true;
          AlignedDimension dim2 = new AlignedDimension();
          dim2.DynamicDimension = true;
          DynamicDimensionData ddim1 = new DynamicDimensionData(dim1, true, false);
          ddim1.Editable = true; ddim1.Focal = true;
          dimCol.Add(ddim1);
          DynamicDimensionData ddim2 = new DynamicDimensionData(dim2, true, false);
          ddim2.Editable = true; ddim2.Focal = true;
          dimCol.Add(ddim2);
          UpdateDimensions();
          PromptResult res;
          while ((res = ed.Drag(this)).Status == PromptStatus.Other);
          return (res.Status == PromptStatus.None) ? PromptStatus.OK : res.Status;
        }
        protected override bool WorldDraw(Autodesk.AutoCAD.GraphicsInterface.WorldDraw draw)
        {
          Point3dCollection pts = new Point3dCollection();
          pts.Add(basePt);
          pts.Add(basePt + new Vector3d(0, height, 0));
          pts.Add(basePt + new Vector3d(width, height, 0));
          pts.Add(basePt + new Vector3d(width, 0, 0));
          pts.Add(basePt);
          return draw.Geometry.Polygon(pts);
        }
     
        protected override DynamicDimensionDataCollection GetDynamicDimensionData(double dimScale)
        {
          return dimCol;
        }
     
        protected override void OnDimensionValueChanged(DynamicDimensionChangedEventArgs e)
        {
          switch (e.Index)
          {
            case 0:
              if (e.Value.ToString() != "0") 
              {
                width = e.Value * Math.Sign(prevPt.X - basePt.X);
                bFixWidth = true;
              }
              else
              {
                bFixWidth = false;
              }
     
              break;
            case 1:
              if (e.Value.ToString() != "0")
              {
                height = e.Value * Math.Sign(prevPt.Y - basePt.Y);
                bFixHeight = true;
              }
              else
              {
                bFixHeight = false;
              }
     
              break;
          }
          UpdateDimensions();
        }
     
        protected override SamplerStatus Sampler(JigPrompts prompts)
        {
          JigPromptPointOptions jigOpts = new JigPromptPointOptions();
          jigOpts.UserInputControls = 
            ( UserInputControls.Accept3dCoordinates | UserInputControls.NullResponseAccepted);
          jigOpts.BasePoint = basePt;
          jigOpts.UseBasePoint = true;
          jigOpts.Cursor = CursorType.RubberBand;
     
          jigOpts.Message = "\nУкажите диагональную точку: ";
          PromptPointResult dres = prompts.AcquirePoint(jigOpts);
          if (dres.Status != PromptStatus.OK &amp;amp;&amp;amp; dres.Status != PromptStatus.Other)
            return SamplerStatus.Cancel;
          if (dres.Status == PromptStatus.OK)
          {
            Point3d curPt = dres.Value;
            if (curPt.DistanceTo(prevPt) &amp;lt; 1e-3)
              return SamplerStatus.NoChange;
            prevPt = curPt;
            if (!bFixWidth)
              width = Math.Max(Math.Abs(curPt.X - basePt.X), minWidth) * Math.Sign(curPt.X - basePt.X);
            if (!bFixHeight)
              height = Math.Max(Math.Abs(curPt.Y - basePt.Y), minHeight) * Math.Sign(curPt.Y - basePt.Y);
          }
          UpdateDimensions();
          return SamplerStatus.OK;
        }
     
        protected void UpdateDimensions()
        {
          Point3d p1 = basePt;
          Point3d p2 = basePt + new Vector3d(width, 0, 0);
          Point3d p3 = basePt + new Vector3d(0, height, 0);
          Point3d p4 = basePt + new Vector3d(width, height, 0);
          AlignedDimension dim;
          dim = dimCol[0].Dimension as AlignedDimension;
          dim.XLine1Point = p1;
          dim.XLine2Point = p2;
          dim.DimLinePoint = p1 + (p2 - p1) * 0.5 - 
            new Vector3d(0, minHeight, 0) * Math.Sign(p4.Y - p1.Y); 
          dim = dimCol[1].Dimension as AlignedDimension;
          dim.XLine1Point = p1;
          dim.XLine2Point = p3;
          dim.DimLinePoint = p1 + (p3 - p1) * 0.5 - 
            new Vector3d(minWidth, 0, 0) * Math.Sign(p4.X - p1.X); 
        }
      }
    }&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="iframe-container"&gt;&lt;IFRAME src="https://screencast.autodesk.com/Embed/Timeline/e52a32fd-ce11-40d8-97d6-7ce46eaa2762" scrolling="no" allowfullscreen="allowfullscreen" webkitallowfullscreen="webkitallowfullscreen" style="display: inline;" width="640" height="620" frameborder="0"&gt;&lt;/IFRAME&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 27 Sep 2017 20:23:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7414656#M29453</guid>
      <dc:creator>Alexander.Rivilis</dc:creator>
      <dc:date>2017-09-27T20:23:05Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416026#M29454</link>
      <description>&lt;P&gt;wow it's amazing ..&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;but i need to learn all about Jig , but i can't find any full and easy lesson to help me about that .&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;can't help me to find any lessons .&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Sep 2017 08:10:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416026#M29454</guid>
      <dc:creator>Amremad</dc:creator>
      <dc:date>2017-09-28T08:10:15Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416095#M29455</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous wrote:&lt;BR /&gt;
&lt;P&gt;wow it's amazing ..&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;but i need to learn all about Jig , but i can't find any full and easy lesson to help me about that .&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;can't help me to find any lessons .&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It is impossible know ALL about Jig as far as this API is very complicated. There is no easy lesson. But you can study ready to use samples and can ask questions. Two samples you can see above.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also some links:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://adndevblog.typepad.com/autocad/2012/10/autocadnet-lesson-7-jig.html" target="_blank"&gt;http://adndevblog.typepad.com/autocad/2012/10/autocadnet-lesson-7-jig.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://through-the-interface.typepad.com/.services/blog/6a00d83452464869e200d83452baa169e2/search?filter.q=jig" target="_blank"&gt;http://through-the-interface.typepad.com/.services/blog/6a00d83452464869e200d83452baa169e2/search?filter.q=jig&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Sep 2017 08:22:14 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416095#M29455</guid>
      <dc:creator>Alexander.Rivilis</dc:creator>
      <dc:date>2017-09-28T08:22:14Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416785#M29456</link>
      <description>&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; i'm trying to understand all samples that i found it since one week .&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;it's very difficult &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;i'm trying to make a jig sample can insert a rectangle with dim(250X300), and user can choose the angle in jig sampler after draw it , and if cancel won't draw any thing.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;so i'm trying to understand all this examples and try to modified it but&amp;nbsp;&lt;SPAN&gt;failure to run.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;i hope to find any lesson just teach me abc for jig &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp; &amp;nbsp;i will see this link&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;thanks every body&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Sep 2017 13:13:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416785#M29456</guid>
      <dc:creator>Amremad</dc:creator>
      <dc:date>2017-09-28T13:13:47Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416799#M29457</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="123.JPG" style="width: 705px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/406478iCA29BE30D8773673/image-size/large?v=v2&amp;amp;px=999" role="button" title="123.JPG" alt="123.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Sep 2017 13:16:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416799#M29457</guid>
      <dc:creator>Amremad</dc:creator>
      <dc:date>2017-09-28T13:16:55Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416812#M29458</link>
      <description>&lt;P&gt;I just downloaded this file from the link. It's all right and it's in place.&lt;/P&gt;</description>
      <pubDate>Thu, 28 Sep 2017 13:19:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416812#M29458</guid>
      <dc:creator>Alexander.Rivilis</dc:creator>
      <dc:date>2017-09-28T13:19:41Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416916#M29459</link>
      <description>&lt;P&gt;i'm trying to open it but chrome tell me&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.JPG" style="width: 508px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/406492i1D62383BFD3914EF/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.JPG" alt="Capture.JPG" /&gt;&lt;/span&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Sep 2017 13:45:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416916#M29459</guid>
      <dc:creator>Amremad</dc:creator>
      <dc:date>2017-09-28T13:45:43Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416936#M29460</link>
      <description>&lt;P&gt;I've attached webcast to this post.&lt;/P&gt;</description>
      <pubDate>Thu, 28 Sep 2017 13:49:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7416936#M29460</guid>
      <dc:creator>Alexander.Rivilis</dc:creator>
      <dc:date>2017-09-28T13:49:48Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7417205#M29461</link>
      <description>&lt;P&gt;IT DOESN'T WORK ALSO&lt;/P&gt;</description>
      <pubDate>Thu, 28 Sep 2017 14:56:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7417205#M29461</guid>
      <dc:creator>Amremad</dc:creator>
      <dc:date>2017-09-28T14:56:30Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7417668#M29462</link>
      <description>&lt;P&gt;How bad it all is ...&lt;/P&gt;
&lt;P&gt;1. Download attached zip-file&lt;/P&gt;
&lt;P&gt;2. Extract (copy in other directory) all files from zip-file.&lt;/P&gt;
&lt;P&gt;3. Do as I show:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="iframe-container"&gt;&lt;IFRAME src="https://screencast.autodesk.com/Embed/Timeline/4fcd3889-073e-41ba-a5c4-86420769aa72" scrolling="no" allowfullscreen="allowfullscreen" webkitallowfullscreen="webkitallowfullscreen" style="display: inline;" width="640" height="620" frameborder="0"&gt;&lt;/IFRAME&gt;&lt;/DIV&gt;
&lt;DIV class="iframe-container"&gt;4. If you do not hear the sounds, you can open the Audio1.wmv file from the Audio directory &lt;/DIV&gt;</description>
      <pubDate>Thu, 28 Sep 2017 16:59:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7417668#M29462</guid>
      <dc:creator>Alexander.Rivilis</dc:creator>
      <dc:date>2017-09-28T16:59:47Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7426838#M29463</link>
      <description>&lt;P&gt;i might write a tutorial on this Revills jig - looks very nice doesn't it?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;might be two weeks but i'll get there.&lt;/P&gt;</description>
      <pubDate>Mon, 02 Oct 2017 22:54:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7426838#M29463</guid>
      <dc:creator>BKSpurgeon</dc:creator>
      <dc:date>2017-10-02T22:54:02Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7427286#M29464</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/3011731"&gt;@BKSpurgeon&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry but there are 3 mistakes in my surname. How can you write a guide to my jig?&amp;nbsp; &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 03 Oct 2017 06:07:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7427286#M29464</guid>
      <dc:creator>Alexander.Rivilis</dc:creator>
      <dc:date>2017-10-03T06:07:47Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7427506#M29465</link>
      <description>Apologies sir for the spelling i will make a good attempt at the guide - if&lt;BR /&gt;you have no objections and will permit me &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;Chrs&lt;BR /&gt;&lt;BR /&gt;Ben&lt;BR /&gt;</description>
      <pubDate>Tue, 03 Oct 2017 08:15:45 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7427506#M29465</guid>
      <dc:creator>BKSpurgeon</dc:creator>
      <dc:date>2017-10-03T08:15:45Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7427518#M29466</link>
      <description>&lt;P&gt;You can try do it.&lt;/P&gt;</description>
      <pubDate>Tue, 03 Oct 2017 08:23:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/7427518#M29466</guid>
      <dc:creator>Alexander.Rivilis</dc:creator>
      <dc:date>2017-10-03T08:23:58Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/9020948#M29467</link>
      <description>&lt;P&gt;Hi Gilles&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would you be able to elaborate on what Matrix3d.WorldToPlane(plane) method is doing?&lt;/P&gt;&lt;P class="Element10"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="Element10"&gt;(If a tranformation matrix is return from this method, and if it describes how to convert from one coordinate system to another, how can it work? (Because when a plane is defined: a normal vector and an origin is enough to define it - meaning that the x and y axis can be pointing anywhere - so am confused as to what it is doing, and how it will work. )&lt;/P&gt;&lt;DIV class="Element720"&gt;&lt;DIV class="Element721"&gt;&lt;DIV class="Element58"&gt;&lt;DIV class="Element11"&gt;&lt;DIV class="Element10"&gt;&lt;P class="Element10"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="Element10"&gt;The documentation gives this reply, which I can't make sense of:&lt;/P&gt;&lt;P class="Element10"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="Element10"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="Element10"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="Element10"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WorldToPlane.PNG" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/676511iED296DF63973C531/image-size/large?v=v2&amp;amp;px=999" role="button" title="WorldToPlane.PNG" alt="WorldToPlane.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 12 Sep 2019 08:07:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/9020948#M29467</guid>
      <dc:creator>BKSpurgeon</dc:creator>
      <dc:date>2019-09-12T08:07:16Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/9020977#M29468</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/3011731"&gt;@BKSpurgeon&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Would you be able to elaborate on what Matrix3d.WorldToPlane(plane) method is doing?&lt;/P&gt;
&lt;P class="Element10"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="Element10"&gt;(If a tranformation matrix is return from this method, and if it describes how to convert from one coordinate system to another, how can it work? (Because when a plane is defined: a normal vector and an origin is enough to define it - meaning that the x and y axis can be pointing anywhere - so am confused as to what it is doing, and how it will work. )&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;To define a coordinate system given a normal vector (Z axis), AutoCAD uses the "&lt;A href="https://help.autodesk.com/view/OARX/2019/ENU/?guid=GUID-E19E5B42-0CC7-4EBA-B29F-5E1D595149EE" target="_blank" rel="noopener"&gt;Arbitrary Axis Algorithm&lt;/A&gt;".&lt;/P&gt;</description>
      <pubDate>Thu, 12 Sep 2019 08:33:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/9020977#M29468</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2019-09-12T08:33:07Z</dc:date>
    </item>
    <item>
      <title>Re: RectangleJig Question</title>
      <link>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/9022563#M29469</link>
      <description>&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Thu, 12 Sep 2019 22:15:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/rectanglejig-question/m-p/9022563#M29469</guid>
      <dc:creator>BKSpurgeon</dc:creator>
      <dc:date>2019-09-12T22:15:58Z</dc:date>
    </item>
  </channel>
</rss>

