Ejemplo n.º 1
0
        public void CreateFactoryEntities(PicFactory factory, ParameterStack stack, Transform2D transform)
        {
            PicFactory fTemp = new PicFactory();

            // free variables
            double a = stack.GetDoubleParameterValue("a");
            double b = stack.GetDoubleParameterValue("b");
            double h = stack.GetDoubleParameterValue("h");
            double e = stack.GetDoubleParameterValue("e");
            double g = stack.GetDoubleParameterValue("g");

            int iTop = stack.GetMultiParameterValue("TOP");
            int iBot = stack.GetMultiParameterValue("BOTTOM");

            double gg = 15.0;

            // formulas
            SortedList <uint, PicEntity> entities = new SortedList <uint, PicEntity>();

            if (g < 5)
            { // Glue_flap
                IPlugin        pluginIn = Host.GetPluginByGuid("729625f4-921d-4f72-af43-4248835a59f3");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                gg = stackIn.GetDoubleParameterValue("g");
            }
            else
            {
                gg = g;
            }
            //---------- TOP Architecture ---------------------
            if (iTop == 0)
            { // Sleeve
                IPlugin        pluginIn = Host.GetPluginByGuid("da290efa-83a5-4ccd-808c-9a5eec81f36b");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);             // A
                stackIn.SetDoubleParameter("B", b);             // B
                stackIn.SetDoubleParameter("e", e);             // e
                stackIn.SetDoubleParameter("H", h / 2);         // H
                stackIn.SetDoubleParameter("g", gg);            // g
                bool        reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(gg, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iTop == 1)
            { // Tuck_end
                int iTuck = stack.GetMultiParameterValue("TUCK");

                IPlugin        pluginIn = Host.GetPluginByGuid("818567a3-ce01-45f5-b328-04031713c12c");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);             // A
                stackIn.SetDoubleParameter("b", b);             // B
                stackIn.SetDoubleParameter("h", h / 2);         // H
                stackIn.SetDoubleParameter("e", e);             // t
                stackIn.SetDoubleParameter("g", g);             // g
                if (2 == iTuck)
                {
                    int iHole = stack.GetMultiParameterValue("HOLE");
                    stackIn.SetMultiParameter("HOLE", iHole);           // Hanging Hole
                }
                stackIn.SetDoubleParameter("bp", iTuck);
                bool        reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(0.0, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iTop == 2)
            { // Inverted_Tuck_end
                int iTuck = stack.GetMultiParameterValue("TUCK");

                IPlugin        pluginIn = Host.GetPluginByGuid("66e5437d-a8a8-404d-951c-e7bf944d2342");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);             // A
                stackIn.SetDoubleParameter("b", b);             // B
                stackIn.SetDoubleParameter("h", h / 2);         // H
                stackIn.SetDoubleParameter("e", e);             // t
                stackIn.SetDoubleParameter("g", g);             // g
                stackIn.SetDoubleParameter("bp", iTuck);
                bool        reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(0.0, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iTop == 3)
            { // Edge_Lock
                int iEdge = stack.GetMultiParameterValue("Edge");

                IPlugin        pluginIn = Host.GetPluginByGuid("827b4625-ccad-41f8-823a-c165852ca8f4");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);             // A
                stackIn.SetDoubleParameter("B", b);             // B
                stackIn.SetDoubleParameter("h", h / 2);         // h
                stackIn.SetDoubleParameter("e", e);             // e
                stackIn.SetDoubleParameter("g", gg);            // g
                stackIn.SetMultiParameter("Edge", iEdge);       // Edge Lock
                stackIn.SetDoubleParameter("A1", b);            // A1
                bool        reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(gg, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iTop == 4)
            { // Seal_End
                int iSeal = stack.GetMultiParameterValue("Seal");

                IPlugin        pluginIn = Host.GetPluginByGuid("af7fb901-90de-4034-9a27-c21d51f826d2");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);             // A
                stackIn.SetDoubleParameter("B", b);             // B
                stackIn.SetDoubleParameter("h", h / 2);         // h
                stackIn.SetDoubleParameter("g", gg);            // g
                stackIn.SetMultiParameter("Seal", iSeal);       // Seal End
                stackIn.SetDoubleParameter("e", e);             // e
                bool        reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(gg, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }


            //---------- BOTTOM Architecture ---------------------
            if (iBot == 0)
            { // Sleeve
                IPlugin        pluginIn = Host.GetPluginByGuid("da290efa-83a5-4ccd-808c-9a5eec81f36b");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);             // A
                stackIn.SetDoubleParameter("B", b);             // B
                stackIn.SetDoubleParameter("e", e);             // e
                stackIn.SetDoubleParameter("H", h / 2);         // H
                stackIn.SetDoubleParameter("g", gg);            // g
                bool        reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(gg, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iBot == 1)
            { // Tuck_end
                int            iBTuck   = stack.GetMultiParameterValue("BTUCK");
                IPlugin        pluginIn = Host.GetPluginByGuid("818567a3-ce01-45f5-b328-04031713c12c");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);             // A
                stackIn.SetDoubleParameter("b", b);             // B
                stackIn.SetDoubleParameter("h", h / 2);         // H
                stackIn.SetDoubleParameter("e", e);             // t
                stackIn.SetDoubleParameter("g", g);             // g
                stackIn.SetDoubleParameter("bp", 0.0);
                if (iBTuck == 2)
                {
                    stackIn.SetDoubleParameter("bp", 0);
                }
                else
                {
                    stackIn.SetDoubleParameter("bp", iBTuck);
                }
                bool        reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(0.0, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iBot == 2)
            { // Inverted_Tuck_end
                int iBTuck = stack.GetMultiParameterValue("BTUCK");

                IPlugin        pluginIn = Host.GetPluginByGuid("66e5437d-a8a8-404d-951c-e7bf944d2342");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);             // A
                stackIn.SetDoubleParameter("b", b);             // B
                stackIn.SetDoubleParameter("h", h / 2);         // H
                stackIn.SetDoubleParameter("e", e);             // t
                stackIn.SetDoubleParameter("g", g);             // g
                stackIn.SetDoubleParameter("bp", 0.0);
                if (iBTuck == 2)
                {
                    stackIn.SetDoubleParameter("bp", 0);
                }
                else
                {
                    stackIn.SetDoubleParameter("bp", iBTuck);
                }
                bool        reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(0.0, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iBot == 3)
            { // Snap_lock_base
                IPlugin        pluginIn = Host.GetPluginByGuid("2c366e1f-35d1-4e72-ba2b-7786e699f94c");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);             // a
                stackIn.SetDoubleParameter("b", b);             // b
                stackIn.SetDoubleParameter("h", h / 2);         // h
                stackIn.SetDoubleParameter("e", e);             // e
                stackIn.SetDoubleParameter("g", g);             // g
                bool        reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(0.0, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iBot == 4)
            { // Crash_lock_base
                IPlugin        pluginIn = Host.GetPluginByGuid("2015adce-a857-49c8-b051-b6891b90b941");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);             // a
                stackIn.SetDoubleParameter("b", b);             // b
                stackIn.SetDoubleParameter("h", h / 2);         // h
                stackIn.SetDoubleParameter("e", e);             // e
                stackIn.SetDoubleParameter("d", e);             // d
                stackIn.SetDoubleParameter("g", g);             // g
                bool        reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(0.0, -h / 2))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iBot == 5)
            { // Edge_Lock
                int iBEdge = stack.GetMultiParameterValue("BEdge");

                IPlugin        pluginIn = Host.GetPluginByGuid("827b4625-ccad-41f8-823a-c165852ca8f4");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);             // A
                stackIn.SetDoubleParameter("B", b);             // B
                stackIn.SetDoubleParameter("h", h / 2);         // h
                stackIn.SetDoubleParameter("e", e);             // e
                stackIn.SetDoubleParameter("g", gg);            // g
                stackIn.SetMultiParameter("Edge", iBEdge);      // Edge Lock
                stackIn.SetDoubleParameter("A1", b);            // A1
                bool        reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(gg, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }
            else if (iBot == 6)
            { // Seal_End
                int iBSeal = stack.GetMultiParameterValue("BSeal");

                IPlugin        pluginIn = Host.GetPluginByGuid("af7fb901-90de-4034-9a27-c21d51f826d2");
                ParameterStack stackIn  = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);             // A
                stackIn.SetDoubleParameter("B", b);             // B
                stackIn.SetDoubleParameter("h", h / 2);         // h
                stackIn.SetDoubleParameter("g", gg);            // g
                stackIn.SetMultiParameter("Seal", iBSeal);      // Seal End
                stackIn.SetDoubleParameter("e", e);             // e
                bool        reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                                               Transform2D.Translation(new Vector2D(gg, 0.0))
                                               * Transform2D.Rotation(0.0)
                                               * transfReflect);
            }

            factory.AddEntities(fTemp, transform);
        }
Ejemplo n.º 2
0
        public void CreateFactoryEntities(PicFactory factory, ParameterStack stack, Transform2D transform)
        {
            PicFactory fTemp = new PicFactory();

            // free variables
            double a = stack.GetDoubleParameterValue("a");
            double b = stack.GetDoubleParameterValue("b");
            double h = stack.GetDoubleParameterValue("h");
            double e = stack.GetDoubleParameterValue("e");
            double g = stack.GetDoubleParameterValue("g");

            int iTop = stack.GetMultiParameterValue("TOP");
            int iBot = stack.GetMultiParameterValue("BOTTOM");

            double gg = 15.0;

            // formulas
            SortedList<uint, PicEntity> entities = new SortedList<uint, PicEntity>();

            if (g < 5)
            { // Glue_flap
                IPlugin pluginIn = Host.GetPluginByGuid("729625f4-921d-4f72-af43-4248835a59f3");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                gg = stackIn.GetDoubleParameterValue("g");
            }
            else
                gg = g;
            //---------- TOP Architecture ---------------------
            if (iTop == 0)
            { // Sleeve
                IPlugin pluginIn = Host.GetPluginByGuid("da290efa-83a5-4ccd-808c-9a5eec81f36b");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);		// A
                stackIn.SetDoubleParameter("B", b);		// B
                stackIn.SetDoubleParameter("e", e);		// e
                stackIn.SetDoubleParameter("H", h / 2);		// H
                stackIn.SetDoubleParameter("g", gg);		// g
                bool reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(gg, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iTop == 1)
            { // Tuck_end
                int iTuck = stack.GetMultiParameterValue("TUCK");

                IPlugin pluginIn = Host.GetPluginByGuid("818567a3-ce01-45f5-b328-04031713c12c");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);		// A
                stackIn.SetDoubleParameter("b", b);		// B
                stackIn.SetDoubleParameter("h", h / 2);		// H
                stackIn.SetDoubleParameter("e", e);		// t
                stackIn.SetDoubleParameter("g", g);		// g
                if (2 == iTuck)
                {
                    int iHole = stack.GetMultiParameterValue("HOLE");
                    stackIn.SetMultiParameter("HOLE", iHole);		// Hanging Hole			
                }
                stackIn.SetDoubleParameter("bp", iTuck);
                bool reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(0.0, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iTop == 2)
            { // Inverted_Tuck_end
                int iTuck = stack.GetMultiParameterValue("TUCK");

                IPlugin pluginIn = Host.GetPluginByGuid("66e5437d-a8a8-404d-951c-e7bf944d2342");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);		// A
                stackIn.SetDoubleParameter("b", b);		// B
                stackIn.SetDoubleParameter("h", h / 2);		// H
                stackIn.SetDoubleParameter("e", e);		// t
                stackIn.SetDoubleParameter("g", g);		// g
                stackIn.SetDoubleParameter("bp", iTuck);
                bool reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(0.0, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iTop == 3)
            { // Edge_Lock
                int iEdge = stack.GetMultiParameterValue("Edge");

                IPlugin pluginIn = Host.GetPluginByGuid("827b4625-ccad-41f8-823a-c165852ca8f4");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);		// A
                stackIn.SetDoubleParameter("B", b);		// B
                stackIn.SetDoubleParameter("h", h / 2);		// h
                stackIn.SetDoubleParameter("e", e);		// e
                stackIn.SetDoubleParameter("g", gg);		// g
                stackIn.SetMultiParameter("Edge", iEdge);		// Edge Lock
                stackIn.SetDoubleParameter("A1", b);			// A1
                bool reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(gg, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iTop == 4)
            { // Seal_End
                int iSeal = stack.GetMultiParameterValue("Seal");

                IPlugin pluginIn = Host.GetPluginByGuid("af7fb901-90de-4034-9a27-c21d51f826d2");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);		// A
                stackIn.SetDoubleParameter("B", b);		// B
                stackIn.SetDoubleParameter("h", h / 2);		// h
                stackIn.SetDoubleParameter("g", gg);		// g
                stackIn.SetMultiParameter("Seal", iSeal);		// Seal End
                stackIn.SetDoubleParameter("e", e);		// e
                bool reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(gg, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }


            //---------- BOTTOM Architecture ---------------------
            if (iBot == 0)
            { // Sleeve
                IPlugin pluginIn = Host.GetPluginByGuid("da290efa-83a5-4ccd-808c-9a5eec81f36b");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);		// A
                stackIn.SetDoubleParameter("B", b);		// B
                stackIn.SetDoubleParameter("e", e);		// e
                stackIn.SetDoubleParameter("H", h / 2);		// H
                stackIn.SetDoubleParameter("g", gg);		// g
                bool reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(gg, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iBot == 1)
            { // Tuck_end
                int iBTuck = stack.GetMultiParameterValue("BTUCK");
                IPlugin pluginIn = Host.GetPluginByGuid("818567a3-ce01-45f5-b328-04031713c12c");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);		// A
                stackIn.SetDoubleParameter("b", b);		// B
                stackIn.SetDoubleParameter("h", h / 2);		// H
                stackIn.SetDoubleParameter("e", e);		// t
                stackIn.SetDoubleParameter("g", g);		// g
                stackIn.SetDoubleParameter("bp", 0.0);
                if (iBTuck == 2)
                    stackIn.SetDoubleParameter("bp", 0);
                else
                    stackIn.SetDoubleParameter("bp", iBTuck);
                bool reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(0.0, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iBot == 2)
            { // Inverted_Tuck_end
                int iBTuck = stack.GetMultiParameterValue("BTUCK");

                IPlugin pluginIn = Host.GetPluginByGuid("66e5437d-a8a8-404d-951c-e7bf944d2342");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);		// A
                stackIn.SetDoubleParameter("b", b);		// B
                stackIn.SetDoubleParameter("h", h / 2);		// H
                stackIn.SetDoubleParameter("e", e);		// t
                stackIn.SetDoubleParameter("g", g);		// g
                stackIn.SetDoubleParameter("bp", 0.0);
                if (iBTuck == 2)
                    stackIn.SetDoubleParameter("bp", 0);
                else
                    stackIn.SetDoubleParameter("bp", iBTuck);
                bool reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(0.0, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iBot == 3)
            { // Snap_lock_base
                IPlugin pluginIn = Host.GetPluginByGuid("2c366e1f-35d1-4e72-ba2b-7786e699f94c");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);		// a
                stackIn.SetDoubleParameter("b", b);		// b
                stackIn.SetDoubleParameter("h", h / 2);		// h
                stackIn.SetDoubleParameter("e", e);		// e
                stackIn.SetDoubleParameter("g", g);		// g
                bool reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(0.0, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iBot == 4)
            { // Crash_lock_base
                IPlugin pluginIn = Host.GetPluginByGuid("2015adce-a857-49c8-b051-b6891b90b941");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("a", a);		// a
                stackIn.SetDoubleParameter("b", b);		// b
                stackIn.SetDoubleParameter("h", h / 2);		// h
                stackIn.SetDoubleParameter("e", e);		// e
                stackIn.SetDoubleParameter("d", e);		// d
                stackIn.SetDoubleParameter("g", g);		// g
                bool reflectionX = false, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(0.0, -h / 2))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iBot == 5)
            { // Edge_Lock
                int iBEdge = stack.GetMultiParameterValue("BEdge");

                IPlugin pluginIn = Host.GetPluginByGuid("827b4625-ccad-41f8-823a-c165852ca8f4");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);		// A
                stackIn.SetDoubleParameter("B", b);		// B
                stackIn.SetDoubleParameter("h", h / 2);		// h
                stackIn.SetDoubleParameter("e", e);		// e
                stackIn.SetDoubleParameter("g", gg);		// g
                stackIn.SetMultiParameter("Edge", iBEdge);		// Edge Lock
                stackIn.SetDoubleParameter("A1", b);			// A1
                bool reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(gg, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }
            else if (iBot == 6)
            { // Seal_End
                int iBSeal = stack.GetMultiParameterValue("BSeal");

                IPlugin pluginIn = Host.GetPluginByGuid("af7fb901-90de-4034-9a27-c21d51f826d2");
                ParameterStack stackIn = Host.GetInitializedParameterStack(pluginIn);
                stackIn.SetDoubleParameter("A", a);		// A
                stackIn.SetDoubleParameter("B", b);		// B
                stackIn.SetDoubleParameter("h", h / 2);		// h
                stackIn.SetDoubleParameter("g", gg);		// g
                stackIn.SetMultiParameter("Seal", iBSeal);		// Seal End
                stackIn.SetDoubleParameter("e", e);		// e
                bool reflectionX = true, reflectionY = false;
                Transform2D transfReflect = (reflectionY ? Transform2D.ReflectionY : Transform2D.Identity) * (reflectionX ? Transform2D.ReflectionX : Transform2D.Identity);
                pluginIn.CreateFactoryEntities(fTemp, stackIn,
                     Transform2D.Translation(new Vector2D(gg, 0.0))
                     * Transform2D.Rotation(0.0)
                     * transfReflect);
            }

            factory.AddEntities(fTemp, transform);
        }
Ejemplo n.º 3
0
        public void CreateFactoryEntities(PicFactory factory, ParameterStack stack, Transform2D transform)
        {
            PicFactory fTemp = new PicFactory();
            const PicGraphics.LT ltCut = PicGraphics.LT.LT_CUT;
            const PicGraphics.LT ltFold = PicGraphics.LT.LT_CREASING;

            // get parameter values
            double L = stack.GetDoubleParameterValue("L");
            double H = stack.GetDoubleParameterValue("H");
            double E = stack.GetDoubleParameterValue("E");
            int PoignsurTete = stack.GetMultiParameterValue("PoignsurTete");

            short layer = 1;
            short grp = 1;
            PicGraphics.LT lt = ltCut;
            if (PoignsurTete >= 2)
            {
                lt = ltFold;
                layer = 2;
            }
            double x1 = (L-H)/2.0;
            double y1 = 0.0;
            double x2 = x1 - (L - H);
            double y2 = y1;
            fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

            lt = ltCut;
            double ry = H / 2.0;
            double xc = x2;
            double yc = - H / 2.0;
            fTemp.AddArc(lt, grp, layer, xc, yc, ry, 90.0, 270.0);

            x1 = xc;
            y1 = -H;
            x2 = x1 + (L - H);
            y2 = y1;
            fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

            ry = H / 2.0;
            xc = x2;
            yc = -H / 2.0;
            fTemp.AddArc(lt, grp, layer, xc, yc, ry, -90.0, 90.0);

            if (PoignsurTete == 3)
            {
                lt = ltCut;
                x1 = (L - H) / 2.0;
                y1 = 0.0;
                x2 = x1;
                y2 = y1 + E;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

                x1 = x2;
                y1 = y2;
                x2 = x1 + E;
                y2 = y1;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

                x1 = -(L - H) / 2.0;
                y1 = 0.0;
                x2 = x1;
                y2 = y1 + E;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

                x1 = x2;
                y1 = y2;
                x2 = x1 - E;
                y2 = y1;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

                lt = ltFold;
                x2 = x1 + (L - H);
                y2 = y1;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);
            }

            factory.AddEntities(fTemp, transform);
        }
Ejemplo n.º 4
0
        public void CreateFactoryEntities(PicFactory factory, ParameterStack stack, Transform2D transform)
        {
            PicFactory           fTemp  = new PicFactory();
            const PicGraphics.LT ltCut  = PicGraphics.LT.LT_CUT;
            const PicGraphics.LT ltFold = PicGraphics.LT.LT_CREASING;

            // get parameter values
            double L            = stack.GetDoubleParameterValue("L");
            double H            = stack.GetDoubleParameterValue("H");
            double E            = stack.GetDoubleParameterValue("E");
            int    PoignsurTete = stack.GetMultiParameterValue("PoignsurTete");

            short layer = 1;
            short grp   = 1;

            PicGraphics.LT lt = ltCut;
            if (PoignsurTete >= 2)
            {
                lt    = ltFold;
                layer = 2;
            }
            double x1 = (L - H) / 2.0;
            double y1 = 0.0;
            double x2 = x1 - (L - H);
            double y2 = y1;

            fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

            lt = ltCut;
            double ry = H / 2.0;
            double xc = x2;
            double yc = -H / 2.0;

            fTemp.AddArc(lt, grp, layer, xc, yc, ry, 90.0, 270.0);

            x1 = xc;
            y1 = -H;
            x2 = x1 + (L - H);
            y2 = y1;
            fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

            ry = H / 2.0;
            xc = x2;
            yc = -H / 2.0;
            fTemp.AddArc(lt, grp, layer, xc, yc, ry, -90.0, 90.0);

            if (PoignsurTete == 3)
            {
                lt = ltCut;
                x1 = (L - H) / 2.0;
                y1 = 0.0;
                x2 = x1;
                y2 = y1 + E;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

                x1 = x2;
                y1 = y2;
                x2 = x1 + E;
                y2 = y1;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

                x1 = -(L - H) / 2.0;
                y1 = 0.0;
                x2 = x1;
                y2 = y1 + E;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

                x1 = x2;
                y1 = y2;
                x2 = x1 - E;
                y2 = y1;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);

                lt = ltFold;
                x2 = x1 + (L - H);
                y2 = y1;
                fTemp.AddSegment(lt, grp, layer, x1, y1, x2, y2);
            }

            factory.AddEntities(fTemp, transform);
        }