private void RecreateBed()
        {
            double buildHeight = ActiveSliceSettings.Instance.GetValue <double>(SettingsKey.build_height);

            UiThread.RunOnIdle((Action)(() =>
            {
                meshViewerWidget.CreatePrintBed(
                    new Vector3(ActiveSliceSettings.Instance.GetValue <Vector2>(SettingsKey.bed_size), buildHeight),
                    ActiveSliceSettings.Instance.GetValue <Vector2>(SettingsKey.print_center),
                    ActiveSliceSettings.Instance.GetValue <BedShape>(SettingsKey.bed_shape));
                PutOemImageOnBed();

                Vector2 bedCenter = ActiveSliceSettings.Instance.GetValue <Vector2>(SettingsKey.print_center);
                if (ActiveSliceSettings.Instance.GetValue <bool>(SettingsKey.center_part_on_bed) &&
                    !InEditMode)
                {
                    if (meshViewerWidget.MeshGroups.Count > 0)
                    {
                        var bounds = meshViewerWidget.MeshGroups[0].GetAxisAlignedBoundingBox();
                        Vector3 boundsCenter = (bounds.maxXYZ + bounds.minXYZ) / 2;
                        for (int i = 0; i < meshViewerWidget.MeshGroups.Count; i++)
                        {
                            meshViewerWidget.MeshGroupTransforms[i] = Matrix4X4.CreateTranslation(-boundsCenter + new Vector3(0, 0, bounds.ZSize / 2) + new Vector3(bedCenter));
                        }
                    }
                }
            }));
        }
Esempio n. 2
0
        private void RecreateBed()
        {
            double buildHeight = ActiveSliceSettings.Instance.BuildHeight;

            UiThread.RunOnIdle(() =>
            {
                meshViewerWidget.CreatePrintBed(
                    new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight),
                    ActiveSliceSettings.Instance.BedCenter,
                    ActiveSliceSettings.Instance.BedShape);
                PutOemImageOnBed();
            });
        }
        void RecreateBedAndPartPosition(object sender, EventArgs e)
        {
            double buildHeight = ActiveSliceSettings.Instance.BuildHeight;

            UiThread.RunOnIdle((state) =>
            {
                meshViewerWidget.CreatePrintBed(
                    new Vector3(ActiveSliceSettings.Instance.BedSize, buildHeight),
                    ActiveSliceSettings.Instance.BedCenter,
                    ActiveSliceSettings.Instance.BedShape);
                PutOemImageOnBed();
            });
        }
        private void RecreateBed()
        {
            double buildHeight = ActiveSliceSettings.Instance.GetValue <double>(SettingsKey.build_height);

            UiThread.RunOnIdle((Action)(() =>
            {
                meshViewerWidget.CreatePrintBed(
                    new Vector3(ActiveSliceSettings.Instance.GetValue <Vector2>(SettingsKey.bed_size), buildHeight),
                    ActiveSliceSettings.Instance.GetValue <Vector2>(SettingsKey.print_center),
                    ActiveSliceSettings.Instance.GetValue <BedShape>(SettingsKey.bed_shape));
                PutOemImageOnBed();
            }));
        }