Unsere russischen Freunde von Eplan For All haben ein schönes Script geschrieben um die Raster-Größe anzupassen.

Download auf eplan4all.info

Vielen Dank!

 

//  Ersteller (разработчик):  madwolf_by aka Виталий
//  Datum:      2014-08-18 
//  www.eplan4all.info - Eplan For All


using Eplan.EplApi.Base;
using System.Windows.Forms;
using Eplan.EplApi.Scripting;
using Eplan.EplApi.ApplicationFramework;
using System;


public class SetGrid
{
    Settings oSettings = new Settings();
    string sPath = "USER.Control.UserGridSize";
    string sPath1 = "USER.Control.UserGridSizeMode";

    [DeclareRegister]
    public void Register()
    {
        if (!oSettings.ExistSetting(sPath))
        {
            if (!oSettings.ExistSetting(sPath))
                oSettings.AddStringSetting(sPath, new string[] { }, new string[] { }, "Current Gridsize", new string[] { @"4" }, ISettings.CreationFlag.Insert);
//            MessageBox.Show("Setting " + sPath + " registered");
        }

        if (!oSettings.ExistSetting(sPath1))
            oSettings.AddBoolSetting(sPath1, new bool[1], "UserGridSizeMode", new bool[1], ISettings.CreationFlag.Insert);

        return;
    }

    [DeclareUnregister]
    public void UnRegister()
    {
        if (oSettings.ExistSetting(sPath))
        {
            oSettings.DeleteSetting(sPath);
//            MessageBox.Show("Setting " + sPath + " unregistered");
        }
    }

    [DeclareAction("SetUserGridSize")]

    public void SetUserGrid(string GridSize)
    {
       
        if (oSettings.GetBoolSetting(sPath1, 0))
        {
            oSettings.SetStringSetting(sPath, GridSize, 0);
            //MessageBox.Show("Incoming param " + oSettings.GetDoubleSetting(sPath, 0));
            SetGridSizeToPage(GridSize);
        }

        else MessageBox.Show("Function is OFF", "SetGrid mode");
        
    }

    [DeclareAction("SetUserGridMode")]

    public void SetUserGridMode()
    {
        oSettings.SetBoolSetting(sPath1, !oSettings.GetBoolSetting(sPath1, 0), 0);
        if (oSettings.GetBoolSetting(sPath1, 0))
        {
            MessageBox.Show("Function is ON", "SetGrid mode");

        }

        else MessageBox.Show("Function is OFF", "SetGrid mode");

    }

    [DeclareEventHandler("onActionEnd.String.XGedNextPageAction")]
    public bool MyEventHandlerFunction1(IEventParameter iEventParameter)
    {
        SetGridSizeToPage(oSettings.GetStringSetting(sPath, 0));
        return true;
    }

    [DeclareEventHandler("onActionEnd.String.XGedPrevPageAction")]
    public bool MyEventHandlerFunction2(IEventParameter iEventParameter)
    {
        SetGridSizeToPage(oSettings.GetStringSetting(sPath, 0));
        return true;
    }

    [DeclareEventHandler("onActionStart.String.XPmPageOpenOnePage")]
    public bool MyEventHandlerFunction3(IEventParameter iEventParameter)
    {
        SetGridSizeToPage(oSettings.GetStringSetting(sPath, 0));
        return true;
    }
    

    public void SetGridSizeToPage(string paramValue)
    {
        if (oSettings.GetBoolSetting(sPath1, 0))
        {
            CommandLineInterpreter oCLI = new CommandLineInterpreter();
            ActionCallingContext oACC = new ActionCallingContext();
            string nameAction = "XEsSetPagePropertyAction";
            oACC.AddParameter("PropertyId", "11051");
            oACC.AddParameter("PropertyIndex", "0");
            //        MessageBox.Show("param from setting " +  Convert.ToString(oSettings.GetDoubleSetting(sPath, 0)));
            oACC.AddParameter("PropertyValue", paramValue);
            oCLI.Execute(nameAction, oACC);
        }
    }
}