From 59a372a35c171a4b542ba5645aee00acdf2da23e Mon Sep 17 00:00:00 2001 From: Connor Ivy Date: Fri, 29 Sep 2023 08:55:26 -0500 Subject: [PATCH] add playground code --- App.config | 6 ++++ CSiAPIPlayground.csproj | 61 ++++++++++++++++++++++++++++++++++++++ CSiAPIPlayground.sln | 25 ++++++++++++++++ Playground.cs | 20 +++++++++++++ Program.cs | 41 +++++++++++++++++++++++++ Properties/AssemblyInfo.cs | 36 ++++++++++++++++++++++ 6 files changed, 189 insertions(+) create mode 100644 App.config create mode 100644 CSiAPIPlayground.csproj create mode 100644 CSiAPIPlayground.sln create mode 100644 Playground.cs create mode 100644 Program.cs create mode 100644 Properties/AssemblyInfo.cs diff --git a/App.config b/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CSiAPIPlayground.csproj b/CSiAPIPlayground.csproj new file mode 100644 index 0000000..1097fbd --- /dev/null +++ b/CSiAPIPlayground.csproj @@ -0,0 +1,61 @@ + + + + + Debug + AnyCPU + {2E3F8501-D253-4C2C-8700-9DBAC0C32029} + Exe + CSiAPIPlayground + CSiAPIPlayground + v4.8 + 8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + 1.0.0 + + + + \ No newline at end of file diff --git a/CSiAPIPlayground.sln b/CSiAPIPlayground.sln new file mode 100644 index 0000000..836b038 --- /dev/null +++ b/CSiAPIPlayground.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34003.232 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSiAPIPlayground", "CSiAPIPlayground.csproj", "{2E3F8501-D253-4C2C-8700-9DBAC0C32029}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2E3F8501-D253-4C2C-8700-9DBAC0C32029}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E3F8501-D253-4C2C-8700-9DBAC0C32029}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E3F8501-D253-4C2C-8700-9DBAC0C32029}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E3F8501-D253-4C2C-8700-9DBAC0C32029}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7BC120DE-8DC4-4E2A-BE10-E2947BA73BD4} + EndGlobalSection +EndGlobal diff --git a/Playground.cs b/Playground.cs new file mode 100644 index 0000000..cef97d8 --- /dev/null +++ b/Playground.cs @@ -0,0 +1,20 @@ +using CSiAPIv1; + +namespace CSiAPIPlayground +{ + public class Playground + { + private readonly cSapModel sapModel; + + public Playground(cSapModel sapModel) + { + this.sapModel = sapModel; + } + + public void Play() + { + // do something here + sapModel.CoordSys.SetCoordSys("newSystem", 0, 0, 0, 45, 0, 0); + } + } +} \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..695714b --- /dev/null +++ b/Program.cs @@ -0,0 +1,41 @@ +using System; +using CSiAPIv1; + +namespace CSiAPIPlayground +{ + class Program + { + private const string ProgID_SAP2000 = "CSI.SAP2000.API.SapObject"; + private const string ProgID_ETABS = "CSI.ETABS.API.ETABSObject"; + private const string ProgID_CSiBridge = "CSI.CSiBridge.API.SapObject"; + private const string ProgID_SAFE = "CSI.SAFE.API.SAFEObject"; + + static void Main(string[] _) + { + var apiObj = GetActiveAPIObject(new Helper()); + var playground = new Playground(apiObj.SapModel); + playground.Play(); + } + + private static cOAPI GetActiveAPIObject(Helper helper) + { + if (helper.GetObject(ProgID_ETABS) is cOAPI etabsModel) + { + return etabsModel; + } + else if (helper.GetObject(ProgID_SAP2000) is cOAPI sapModel) + { + return sapModel; + } + else if (helper.GetObject(ProgID_SAFE) is cOAPI safeModel) + { + return safeModel; + } + else if (helper.GetObject(ProgID_CSiBridge) is cOAPI bridgeModel) + { + return bridgeModel; + } + throw new Exception("Unable to find running instance of csi application :("); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5b4d0d2 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SimpleSAPPlugin")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SimpleSAPPlugin")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("2e3f8501-d253-4c2c-8700-9dbac0c32029")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")]