mirror of
https://github.com/jeremytammik/RevitSdkSamples.git
synced 2026-09-22 11:47:55 +00:00
copied Revit 2024 SDK
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,275 @@
|
||||
To successfully build StructuralConnectionsSamples.sln open StructuralConnectionsSDKSamples.Common.props in any text editor and edit ASInstallDir property with the corresponding path for Revit installation (e.g. C:\Program Files\Autodesk\Revit2024\AddIns\SteelConnections)
|
||||
|
||||
//////////////////////////////Joint config xml////////////////////////////////////////////////////////////////
|
||||
1. Create a folder named ThirdPartySettings under the C:\ProgramData\Autodesk\Revit Steel Connections 2024 \en-US\
|
||||
2. Under the ThirdPartySettings folder create an .xml with the following contents (check SteelConnectionsSampleJoints.xml provided with the samples):
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PaletteData Version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<ResourceDll>SteelConnectionsDotNetJointExample.dll</ResourceDll>
|
||||
<PreviewResourceDll>SteelConnectionsDotNetJointExample.dll</PreviewResourceDll>
|
||||
<Categories>
|
||||
<PaletteCategory>
|
||||
<Name>Plates at beam</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Steel Connections Sample Joint</Description>
|
||||
<Command>SteelConnectionsJointExample</Command>
|
||||
<PreviewText>This is my test joint</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>E8BB9834-E1A2-4644-9C59-1C9812C04E8E</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
<PaletteCategory>
|
||||
<Name>Net joint</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Bridge Girder DotNet Example</Description>
|
||||
<Command>BridgeGirderSample</Command>
|
||||
<PreviewText>This is my test joint 2</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>36c78249-132f-4037-9822-3802a5cf9345</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
<PaletteCategory>
|
||||
<Name>Net joint</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Lap Joint Example</Description>
|
||||
<Command>LapJoint</Command>
|
||||
<PreviewText>This is my Lap joint</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>B2E820AB-A8BD-4998-878C-1BE4364B1BD9</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
<PaletteCategory>
|
||||
<Name>Net joint clip angle</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Steel Connections Clip Angle Example</Description>
|
||||
<Command>SampleClipAngle</Command>
|
||||
<PreviewText>This is my test joint 3</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>8B4FDDC8-946A-49B4-AF65-AC54C5615AB1</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
<PaletteCategory>
|
||||
<Name>Native Sample Clip Angle</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Steel Connections Native Clip Angle</Description>
|
||||
<Command>SampleClipAngleNative</Command>
|
||||
<PreviewText>C++ Native Clip Angle Example</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>FD62E6AB-0412-4F2B-9DB8-C5D5385F8042</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
</Categories>
|
||||
</PaletteData>
|
||||
|
||||
/////////////////////////////////SteelConnectionsJointExample //////////////////////////////////////
|
||||
1. Build the "SteelConnectionsJointExample" and "SampleDesign" projects.
|
||||
|
||||
2. Copy "SteelConnectionsJointExample.dll and "SampleDesign.dll" from "..\SDK\Samples\Binaries" to your local Revit installation under AddIns\SteelConnections subfolder (e.g." C:\Program Files\Autodesk\Revit 2024\AddIns\SteelConnections\”)
|
||||
|
||||
3. Add a record in the AstorRules.RulesDllSigned table for SteelConnectionsJointExample.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 20000)
|
||||
FileName: SteelConnectionsJointExample.dll
|
||||
Tech: 1
|
||||
|
||||
|
||||
4. Add a record in the AstorRules.HRLDefinition for SteelConnectionsJointExample.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 20000)
|
||||
RuleRunName: SteelConnectionsJointExample
|
||||
InternalName: SteelConnectionsJointExample
|
||||
Category: SteelConnectionsJointExample
|
||||
Dll: - dll key set in step 3 (20000)
|
||||
ClassId: {E8BB9834-E1A2-4644-9C59-1C9812C04E8E}
|
||||
Version: 24
|
||||
|
||||
|
||||
5. Run the script "dbo.RULE_CreatePlate.sql" inside AstorRules.mdf creating a table called "RULE_CreatePlate". (found under ..\Samples\Projects\SampleJoint)
|
||||
|
||||
6. Add a record in the table AstorJointsCalculation.NSAModuleDllSigned with the following values for each column:
|
||||
Key: 12 (or an integer outside the standard Revit range - e.g.: 17000)
|
||||
FileName: SampleDesign.dll
|
||||
Tech: 1
|
||||
|
||||
|
||||
7. Add a record in the table AstorJointsCalculation.NSAModule with the following values for each column:
|
||||
Key: 59 (or an integer outside the standard Revit range - e.g.: 18000)
|
||||
StressAnalysisCodeID: 1
|
||||
JointInternalName: SteelConnectionsJointExample
|
||||
NSAModuleInternalName: CreatePlateDesign_NSAModule
|
||||
DefaultModule: 1
|
||||
SortOrder: 1
|
||||
|
||||
|
||||
8. Add a record in the table AstorJointsCalculation.NSAModuleDefinition with the following values for each column:
|
||||
Key: 59 (or an integer outside the standard Revit range - e.g.: 170000) make sure to use the same key from step (7).
|
||||
ModuleRunName: SampleDesign
|
||||
InternalName: CreatePlateDesign_NSAModule
|
||||
NSAModuleDll: 12
|
||||
ClassID: {C64ECF63-D01C-451F-B0E0-E3F85DFAC05E}
|
||||
|
||||
|
||||
9. Open Revit and create a structural column (make sure the connection to the databases is closed after adding the values above, before starting Revit).
|
||||
|
||||
10. Open the connection Settings Dialog from the ‘Steel” tab and load the connection
|
||||
|
||||
|
||||
11. Use the “Connection” button on the “Steel” tab to apply the connection on the column created at step 12.
|
||||
|
||||
/////////////////////////////////SteelConnectionsDotNetJointExample//////////////////////////////////////
|
||||
1. Build the project SteelConnectionsDotNetJointExample
|
||||
|
||||
2. Copy "SteelConnectionsDotNetJointExample.dll from "..\SDK\Samples\Binaries" to your local Revit installation under AddIns\SteelConnections subfolder (e.g." C:\Program Files\Autodesk\Revit 2024\AddIns\SteelConnections\”)
|
||||
|
||||
3. Add a record in the AstorRules.RulesDllSigned table for SteelConnectionsDotNetJointExample.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 20001)
|
||||
FileName: SteelConnectionsDotNetJointExample.dll
|
||||
Tech: 2
|
||||
|
||||
|
||||
4. Add a record in the AstorRules.HRLDefinition for SteelConnectionsDotNetJointExample.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 170000)
|
||||
RuleRunName: BridgeGirderSample
|
||||
InternalName: BridgeGirderSample
|
||||
Category: BridgeGirderSample
|
||||
Dll: - dll key set in step 3
|
||||
SubNameInDll: SteelConnectionsDotNetJointExample.BridgeGirderSample
|
||||
ClassId: {36c78249-132f-4037-9822-3802a5cf9345}
|
||||
Version: 24
|
||||
|
||||
|
||||
5. Open Revit and create a structural beam (make sure the connection to the databases is closed after adding the values above, before starting Revit).
|
||||
|
||||
6. Open the connection Settings Dialog from the ‘Steel” tab “Add” the “Steel Connection Joint DotNet Example“ connection in the right pane.
|
||||
|
||||
|
||||
8 .Use the “Connection” button on the “Steel” tab to apply the connection on the beam created at step 5.
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////SampleLapJoint//////////////////////////////////////
|
||||
1. Build the project SampleLapJoint
|
||||
|
||||
2. Copy "SampleLapJoint.dll from "..\SDK\Samples\Binaries" to your local Revit installation under AddIns\SteelConnections subfolder (e.g." C:\Program Files\Autodesk\Revit 2024\AddIns\SteelConnections\”)
|
||||
|
||||
3. Add a record in the AstorRules.RulesDllSigned table for SampleLapJoint.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 20001)
|
||||
FileName: SampleLapJoint.dll
|
||||
Tech: 2
|
||||
|
||||
|
||||
4. Add a record in the AstorRules.HRLDefinition for SampleLapJoint.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 170000)
|
||||
RuleRunName: LapJoint
|
||||
InternalName: LapJoint
|
||||
Category: LapJoint
|
||||
Dll: - dll key set in step 3
|
||||
SubNameInDll: SampleLapJoint.LapJoint
|
||||
ClassId: {B2E820AB-A8BD-4998-878C-1BE4364B1BD9}
|
||||
Version: 24
|
||||
|
||||
|
||||
5. Open Revit and create two structural overlapping flat beams (make sure the connection to the databases is closed after adding the values above, before starting Revit).
|
||||
|
||||
6. Open the connection Settings Dialog from the ‘Steel” tab “Add” the “Lap Joint Example“ connection in the right pane.
|
||||
|
||||
|
||||
8 .Use the “Connection” button on the “Steel” tab to apply the connection on the beam created at step 5.
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////SampleClipAngle//////////////////////////////////////
|
||||
1.Build the project SampleClipAngle
|
||||
|
||||
2.Copy " SampleClipAngle.dll from "..\SDK\Samples\Binaries" to your local Revit installation under AddIns\SteelConnections subfolder (e.g." C:\Program Files\Autodesk\Revit 2024\AddIns\SteelConnections\”)
|
||||
|
||||
3.Add a record in the AstorRules.RulesDllSigned table for SampleClipAngle.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 20002)
|
||||
FileName: SampleClipAngle.dll
|
||||
Tech: 1
|
||||
|
||||
|
||||
4. Add a record in the AstorRules.HRLDefinition for SampleClipAngle.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 20002)
|
||||
RuleRunName: SampleClipAngle
|
||||
InternalName: SampleClipAngle
|
||||
Category: SampleClipAngle
|
||||
Dll: - dll key set in step rulesDLLSigned table
|
||||
SubNameInDll: SampleClipAngle
|
||||
ClassId: {8B4FDDC8-946A-49B4-AF65-AC54C5615AB1}
|
||||
Version: 24
|
||||
|
||||
|
||||
5. Open Revit and create a structural column, and a structural beam perpendicular on the column (make sure the connection to the databases is closed after adding the values above, before starting Revit).
|
||||
|
||||
6. Open the connection Settings Dialog from the ‘Steel” tab “Add” the “Steel Connections Clip Angle Example“ connection in the right pane.
|
||||
|
||||
7 .Use the “Connection” button on the “Steel” tab to apply the connection on the beam created at step 5.
|
||||
|
||||
|
||||
/////////////////////////////////SampleClipAngleNative//////////////////////////////////////
|
||||
1.Build the project SampleClipAngleNative
|
||||
|
||||
2.Copy " SampleClipAngleNative.dll from "..\SDK\Samples\Binaries" to your local Revit installation under AddIns\SteelConnections subfolder (e.g." C:\Program Files\Autodesk\Revit 2024\AddIns\SteelConnections\”)
|
||||
|
||||
3.Add a record in the AstorRules.RulesDllSigned table for SampleClipAngleNative.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 20003)
|
||||
FileName: SampleClipAngleNative.dll
|
||||
Tech: 0
|
||||
|
||||
|
||||
4. Add a record in the AstorRules.HRLDefinition for SampleClipAngleNative.dll
|
||||
Key: an integer outside the standard Revit range (e.g.: 20003)
|
||||
RuleRunName: SampleClipAngleNative
|
||||
InternalName: SampleClipAngleNative
|
||||
Category: SampleClipAngleNative
|
||||
Dll: - dll key set in step rulesDLLSigned table
|
||||
SubNameInDll: SampleClipAngleNative
|
||||
ClassId: {FD62E6AB-0412-4F2B-9DB8-C5D5385F8042}
|
||||
Version: 24
|
||||
|
||||
|
||||
5. Open Revit and create a structural column, and a structural beam perpendicular on the column (make sure the connection to the databases is closed after adding the values above, before starting Revit).
|
||||
|
||||
6. Open the connection Settings Dialog from the ‘Steel” tab “Add” the “Steel Connections Native Clip Angle “ connection in the right pane.
|
||||
|
||||
7 .Use the “Connection” button on the “Steel” tab to apply the connection on the beam created at step 5.
|
||||
|
||||
@@ -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("SampleClipAngle")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Autodesk, Inc.")]
|
||||
[assembly: AssemblyProduct("SampleClipAngle")]
|
||||
[assembly: AssemblyCopyright("Copyright © Autodesk, Inc. 2022")]
|
||||
[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("8cff2bfd-0e4d-4a20-95f4-c1fd4bdf0703")]
|
||||
|
||||
// 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")]
|
||||
@@ -0,0 +1,468 @@
|
||||
using AstSTEELAUTOMATIONLib;
|
||||
using DSCODBCCOMLib;
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace SampleClipAngle
|
||||
{
|
||||
[ComVisible(true)]
|
||||
[Guid("8B4FDDC8-946A-49B4-AF65-AC54C5615AB1")]
|
||||
public class SampleClipAngle : IRule
|
||||
{
|
||||
private Joint m_Joint = null;
|
||||
|
||||
public String m_sProfType;
|
||||
public String m_sProfSize;
|
||||
public String m_sBoltsStandard;
|
||||
public String m_sBoltsMaterial;
|
||||
public String m_sBoltsSet;
|
||||
public double m_dBoltsDiameter;
|
||||
|
||||
private SampleClipUI m_GUI = null;
|
||||
|
||||
private void SplitBeamsInternalName(string fullInternal, out string classInternal, out string sectionInternal)
|
||||
{
|
||||
const string separator = "#@§@#";
|
||||
classInternal = string.Empty;
|
||||
sectionInternal = string.Empty;
|
||||
int position = fullInternal.IndexOf(separator);
|
||||
if (position > 0)
|
||||
{
|
||||
classInternal = fullInternal.Substring(0, position);
|
||||
sectionInternal = fullInternal.Substring(position + separator.Length);
|
||||
}
|
||||
}
|
||||
|
||||
public void Query(AstUI pAstUI)
|
||||
{
|
||||
IClassFilter classFilter;
|
||||
classFilter = pAstUI.GetClassFilter();
|
||||
classFilter.AppendAcceptedClass(eClassType.kBeamStraightClass);
|
||||
|
||||
//Declare the input objects
|
||||
AstObjectsArr inputObjectsArr = m_Joint.CreateObjectsArray();
|
||||
|
||||
|
||||
//Get the column
|
||||
eUIErrorCodes errCode;
|
||||
IAstObject selectedColumn = pAstUI.AcquireSingleObject(163, out errCode);
|
||||
|
||||
|
||||
//selection incorrect
|
||||
if (errCode == eUIErrorCodes.kUIError)
|
||||
return;
|
||||
|
||||
//user abort the selection
|
||||
if (errCode == eUIErrorCodes.kUICancel)
|
||||
return;
|
||||
|
||||
//add selected object to the input objects array
|
||||
if (selectedColumn != null)
|
||||
inputObjectsArr.Add(selectedColumn);
|
||||
|
||||
//Get the beam
|
||||
IAstObject selectedBeam = pAstUI.AcquireSingleObject(163, out errCode);
|
||||
|
||||
|
||||
//selection incorrect
|
||||
if (errCode == eUIErrorCodes.kUIError)
|
||||
return;
|
||||
|
||||
//user abort the selection
|
||||
if (errCode == eUIErrorCodes.kUICancel)
|
||||
return;
|
||||
|
||||
//add selected object to the input objects array
|
||||
if (selectedBeam != null)
|
||||
inputObjectsArr.Add(selectedBeam);
|
||||
|
||||
|
||||
//add all the objects selected by the user(input objects)
|
||||
m_Joint.InputObjects = inputObjectsArr;
|
||||
|
||||
IOdbcUtils tableUtils = new DSCODBCCOMLib.OdbcUtils();
|
||||
string defAngle = tableUtils.GetDefaultString(0, "HyperSectionW");
|
||||
SplitBeamsInternalName(defAngle, out m_sProfType, out m_sProfSize);
|
||||
|
||||
m_sBoltsStandard = tableUtils.GetDefaultString(401, "Norm");
|
||||
m_sBoltsMaterial = tableUtils.GetDefaultString(401, "Material");
|
||||
m_sBoltsSet = tableUtils.GetDefaultString(401, "Garnitur");
|
||||
m_dBoltsDiameter = tableUtils.GetDefaultDouble(401, "Diameter");
|
||||
}
|
||||
|
||||
public void InField(IFiler pFiler)
|
||||
{
|
||||
int version = pFiler.readVersion(); //Returns the current rule version.
|
||||
|
||||
m_sProfType = (string)pFiler.readItem("ProfType");
|
||||
m_sProfSize = (string)pFiler.readItem("ProfSize");
|
||||
|
||||
m_dBoltsDiameter = (double)pFiler.readItem("BoltsDiameter");
|
||||
m_sBoltsStandard = (string)pFiler.readItem("BoltsStandard");
|
||||
m_sBoltsMaterial = (string)pFiler.readItem("BoltsMaterial");
|
||||
m_sBoltsSet = (string)pFiler.readItem("BoltsSet");
|
||||
}
|
||||
|
||||
public void OutField(IFiler pFiler)
|
||||
{
|
||||
pFiler.writeVersion(1); //Set the current rule version
|
||||
|
||||
pFiler.writeItem(m_sProfType, "ProfType");
|
||||
pFiler.writeItem(m_sProfSize, "ProfSize");
|
||||
|
||||
pFiler.writeItem(m_dBoltsDiameter, "BoltsDiameter");
|
||||
pFiler.writeItem(m_sBoltsStandard, "BoltsStandard");
|
||||
pFiler.writeItem(m_sBoltsMaterial, "BoltsMaterial");
|
||||
pFiler.writeItem(m_sBoltsSet, "BoltsSet");
|
||||
}
|
||||
|
||||
public string GetTableName()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
//Returns the beam cs at the given point
|
||||
private void GetBeamCSAtPoint(IBeam beam, IPoint3d point, out ICS3d cs)
|
||||
{
|
||||
//Get the beam cs at start
|
||||
ICS3d startCS = beam.getSysCSAt(eBeamEnd.kBeamStart);
|
||||
|
||||
IMatrix3d alignMatrix;
|
||||
//Get the closest point on the system line to the input point
|
||||
IPoint3d closestPoint = beam.getClosestPointToSystemline(point, false);
|
||||
cs = beam.getCSAtPoint(closestPoint);
|
||||
|
||||
//Get the transform matrix for the cs at the input point
|
||||
alignMatrix = startCS.SetToAlignCS(cs);
|
||||
|
||||
//Change the closest point to the cs origin
|
||||
closestPoint.setFrom(cs.Origin);
|
||||
|
||||
//Get the offset of the beam system
|
||||
IVector3d spOffsetVector = beam.GetCurrentSys2Phys3dOffset();
|
||||
|
||||
//Transform and translate the cs
|
||||
spOffsetVector.TransformBy(alignMatrix);
|
||||
closestPoint.Add(spOffsetVector);
|
||||
cs.Origin = closestPoint;
|
||||
}
|
||||
|
||||
IPoint3dArray IntersectBeam(IStraightBeam beam, IPoint3d linePt, IVector3d lineVect)
|
||||
{
|
||||
//Create a line from the input point and vector
|
||||
ILine3d line = (ILine3d)(new DSCGEOMCOMLib.Line3d());
|
||||
line.CreateFromVectorAndPoint(linePt, lineVect);
|
||||
|
||||
//Get the body of the column
|
||||
IAstModeler bodyColumn = beam.getAstModeler(eBodyContext.kBodyUnNotched);
|
||||
|
||||
//Interect it with the line
|
||||
IPoint3dArray result = bodyColumn.intersectWithLine(line);
|
||||
|
||||
//Return the resulted intersection points
|
||||
return result;
|
||||
}
|
||||
|
||||
IPlane GetFacePlane(IStraightBeam inputColumn, IStraightBeam inputBeam)
|
||||
{
|
||||
//Result plane
|
||||
IPlane plane = (IPlane)(new DSCGEOMCOMLib.plane());
|
||||
|
||||
//Get the beam outer cs
|
||||
eBeamEnd beamStart;
|
||||
ICS3d outerCS;
|
||||
inputBeam.getCutOuterCS(true, inputColumn, -1, out outerCS, out beamStart, true);
|
||||
|
||||
//Change the z vector direction
|
||||
IVector3d outerVectZ = outerCS.ZAxis;
|
||||
outerVectZ.Multiply(-1);
|
||||
|
||||
IPoint3d outerCSOrigin = outerCS.Origin;
|
||||
|
||||
//Get the column cs at the outer cs origin
|
||||
ICS3d mainCSAtPoint;
|
||||
GetBeamCSAtPoint(inputColumn, outerCSOrigin, out mainCSAtPoint);
|
||||
|
||||
//Compute tranformation matrix
|
||||
IPoint3d axisPoint = mainCSAtPoint.Origin;
|
||||
ICS3d midCS = inputColumn.PhysicalCSMid;
|
||||
IMatrix3d alignMatrix = mainCSAtPoint.SetToAlignCS(midCS);
|
||||
|
||||
//Transform the points which will constitute the line which we want to intersect with the beam
|
||||
axisPoint.TransformBy(alignMatrix);
|
||||
outerVectZ.TransformBy(alignMatrix);
|
||||
|
||||
|
||||
//Get the intersection points
|
||||
IPoint3dArray intersectionPts = IntersectBeam(inputColumn, axisPoint, outerVectZ);
|
||||
|
||||
//If we have intersection points, create a plane at the first intersection point
|
||||
if (intersectionPts.Count != 0)
|
||||
{
|
||||
IPoint3d tempPt = intersectionPts[0];
|
||||
axisPoint.setFrom(tempPt);
|
||||
|
||||
|
||||
alignMatrix = midCS.SetToAlignCS(mainCSAtPoint);
|
||||
axisPoint.TransformBy(alignMatrix);
|
||||
outerVectZ.TransformBy(alignMatrix);
|
||||
|
||||
plane.CreateFromPointAndNormal(axisPoint, outerVectZ);
|
||||
}
|
||||
return plane;
|
||||
}
|
||||
|
||||
|
||||
private void MovePoint(IPoint3d ptIn, IVector3d vMove, double moveDist, out IPoint3d retPoint)
|
||||
{
|
||||
retPoint = (IPoint3d)(new DSCGEOMCOMLib.Point3d());
|
||||
retPoint.setFrom(ptIn);
|
||||
|
||||
IVector3d v = (IVector3d)(new DSCGEOMCOMLib.Vector3d());
|
||||
v.setFrom(vMove);
|
||||
v.Normalize();
|
||||
v.Multiply(moveDist);
|
||||
retPoint.Add(v);
|
||||
}
|
||||
|
||||
public void CreateBoltPattern(string boltRole,
|
||||
double dBoltWidth,
|
||||
double dBoltHeight,
|
||||
int nXBolts,
|
||||
int nYBolts,
|
||||
ICS3d csBolts,
|
||||
IStraightBeam cleat1,
|
||||
IStraightBeam cleat2,
|
||||
IStraightBeam beam,
|
||||
ref AstObjectsArr createdObjectsArr)
|
||||
{
|
||||
Role role = m_Joint.CreateRole(boltRole); //role object
|
||||
|
||||
IBolt bolt = m_Joint.CreateBoltFinitRect(role, m_sBoltsMaterial, m_sBoltsStandard, 0, 0, dBoltHeight, dBoltWidth, nXBolts, nYBolts, m_dBoltsDiameter, csBolts);
|
||||
if (bolt != null)
|
||||
{
|
||||
AstObjectsArr conObj = m_Joint.CreateObjectsArray();
|
||||
conObj.Add(cleat1);
|
||||
|
||||
if (cleat2 != null)
|
||||
conObj.Add(cleat2);
|
||||
|
||||
conObj.Add(beam);
|
||||
|
||||
bolt.Connect(conObj, eAssembleLocation.kOnSite);
|
||||
createdObjectsArr.Add(bolt);
|
||||
}
|
||||
}
|
||||
|
||||
public void CreateObjects()
|
||||
{
|
||||
bool bCreationStatus = true;
|
||||
//declare the created objects
|
||||
AstObjectsArr createdObjectsArr = m_Joint.CreateObjectsArray();
|
||||
|
||||
try
|
||||
{
|
||||
//retrieve the beam & the column from the input objects array
|
||||
AstObjectsArr arrObjects = m_Joint.InputObjects;
|
||||
IStraightBeam inputColumn = null;
|
||||
IStraightBeam inputBeam = null;
|
||||
|
||||
if (arrObjects != null)
|
||||
{
|
||||
int nObjs = arrObjects.Count;
|
||||
if (nObjs > 1)
|
||||
{
|
||||
IAstObject astObj1 = arrObjects[0];
|
||||
if (astObj1 != null)
|
||||
{
|
||||
if (astObj1.Type == eClassType.kBeamStraightClass)
|
||||
inputColumn = (IStraightBeam)astObj1;
|
||||
}
|
||||
|
||||
IAstObject astObj2 = arrObjects[1];
|
||||
if (astObj2 != null)
|
||||
{
|
||||
if (astObj2.Type == eClassType.kBeamStraightClass)
|
||||
inputBeam = (IStraightBeam)astObj2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (inputBeam != null && inputColumn != null)
|
||||
{
|
||||
ICS3d csColumn = inputColumn.cs;
|
||||
ICS3d csBeam = inputBeam.cs;
|
||||
|
||||
if (csBeam.ZAxis.IsPerpendicularTo(csColumn.ZAxis))
|
||||
{
|
||||
//Get the plane where the beam and shortening intersect
|
||||
IPlane plShortening = GetFacePlane(inputColumn, inputBeam);
|
||||
|
||||
eBeamEnd beamCutEnd;
|
||||
IPoint3d ptClosestOnColumn = (IPoint3d)(new DSCGEOMCOMLib.Point3d());
|
||||
ptClosestOnColumn.setFrom(plShortening.PointOnPlane);
|
||||
|
||||
//Get the beam cs in the closest point on the column
|
||||
ICS3d csBeamAtIntersectionPoint = inputBeam.getCSAtPoint(ptClosestOnColumn);
|
||||
|
||||
//Find the cs where at the beam end that needs to be cut
|
||||
ICS3d csCutBeam;
|
||||
inputBeam.getCutOuterCS(true, inputColumn, -1, out csCutBeam, out beamCutEnd, true);
|
||||
|
||||
//Add a shortening to trim/extend the beam until it touches the column
|
||||
IBeamShortening shortening = inputBeam.addBeamShortening(beamCutEnd, plShortening);
|
||||
if (shortening != null)
|
||||
createdObjectsArr.Add(shortening);
|
||||
|
||||
//Create an L shaped beam as the first clip angle cleat
|
||||
//We want to put 2 L shaped beams perpendicular to the input beam - on the input beam Z
|
||||
IProfType profType = (IProfType)(new DSCPROFILESACCESSCOMLib.ProfType());
|
||||
profType.createProfType(m_sProfType, m_sProfSize);
|
||||
|
||||
IVector3d vectLBeamDir = csBeamAtIntersectionPoint.ZAxis;
|
||||
IVector3d vectLBeamTranslationX = csBeamAtIntersectionPoint.XAxis;
|
||||
IVector3d vectLBeamTranslationY = csBeamAtIntersectionPoint.YAxis;
|
||||
|
||||
//Compute the first cleat it's start/endpoints
|
||||
IPoint3d ptCleatStart = (IPoint3d)(new DSCGEOMCOMLib.Point3d());
|
||||
MovePoint(plShortening.PointOnPlane, vectLBeamDir, -100, out ptCleatStart);
|
||||
|
||||
//Find the beam we thickness and offset the cleat outside it a bit
|
||||
IProfType profBeam = inputBeam.getProfType();
|
||||
double dBeamWeb = profBeam.getGeometricalData(eProfCommonData.kWeb);
|
||||
MovePoint(ptCleatStart, vectLBeamTranslationY, -dBeamWeb / 2, out ptCleatStart);
|
||||
|
||||
IPoint3d ptCleatEnd = (IPoint3d)(new DSCGEOMCOMLib.Point3d());
|
||||
MovePoint(ptCleatStart, vectLBeamDir, 200, out ptCleatEnd);
|
||||
|
||||
//Create a model role for the first cleat
|
||||
IRole spRole = m_Joint.CreateRole("Angle_Cleat#1");
|
||||
|
||||
ICS3d csCleat = (ICS3d)(new DSCGEOMCOMLib.CS3d());
|
||||
csCleat.setFrom(csBeamAtIntersectionPoint);
|
||||
csCleat.RotateCSAroundY(Math.PI / 2);
|
||||
csCleat.RotateCSAroundX(Math.PI);
|
||||
|
||||
//Finnaly, create the beam
|
||||
IStraightBeam firstCleat = m_Joint.CreateStraightBeam(m_sProfType, m_sProfSize, (Role)spRole, ptCleatStart, ptCleatEnd, csCleat);
|
||||
|
||||
if (firstCleat != null)
|
||||
{
|
||||
firstCleat.refAxis = eProfRefAxis.kLowerLeft;
|
||||
createdObjectsArr.Add(firstCleat);
|
||||
|
||||
//We will move the cleat cs to create the second cleat, therefore save it, for later when we create the bolts
|
||||
ICS3d csBolts = (ICS3d)(new DSCGEOMCOMLib.CS3d());
|
||||
csBolts.setFrom(csCleat);
|
||||
|
||||
//Perform calculations for the second cleat
|
||||
IPoint3d ptBoltsOrig = (IPoint3d)(new DSCGEOMCOMLib.Point3d());
|
||||
ptBoltsOrig.setFrom(ptCleatStart);
|
||||
|
||||
MovePoint(ptBoltsOrig, vectLBeamDir, 100, out ptBoltsOrig);
|
||||
|
||||
csBolts.Origin = ptBoltsOrig;
|
||||
|
||||
MovePoint(ptCleatEnd, vectLBeamTranslationY, dBeamWeb, out ptCleatEnd);
|
||||
MovePoint(ptCleatStart, vectLBeamTranslationY, dBeamWeb, out ptCleatStart);
|
||||
|
||||
ICS3d csCleat2 = (ICS3d)(new DSCGEOMCOMLib.CS3d());
|
||||
csCleat2.setFrom(csBeamAtIntersectionPoint);
|
||||
csCleat2.RotateCSAroundZ(Math.PI);
|
||||
|
||||
csCleat2.Origin = ptCleatStart;
|
||||
|
||||
//Create the cleat
|
||||
IStraightBeam secondCleat = m_Joint.CreateStraightBeam(m_sProfType, m_sProfSize, (Role)spRole, ptCleatEnd, ptCleatStart, csCleat);
|
||||
|
||||
if (secondCleat != null)
|
||||
{
|
||||
//Now connect the L shaped beams with bolts on the main column and beam
|
||||
secondCleat.refAxis = eProfRefAxis.kLowerLeft;
|
||||
createdObjectsArr.Add(secondCleat);
|
||||
|
||||
CreateBoltPattern("Bolt#1", 100, 60, 3, 2, csBolts, firstCleat, secondCleat, inputColumn, ref createdObjectsArr);
|
||||
|
||||
csBolts.RotateCSAroundX(Math.PI / 2);
|
||||
IPoint3d ptCsBoltOrig = (IPoint3d)(new DSCGEOMCOMLib.Point3d());
|
||||
MovePoint(csBolts.Origin, vectLBeamTranslationX, -50, out ptCsBoltOrig);
|
||||
MovePoint(ptCsBoltOrig, vectLBeamTranslationY, 40, out ptCsBoltOrig);
|
||||
csBolts.Origin = ptCsBoltOrig;
|
||||
|
||||
CreateBoltPattern("Bolt#2", 50, 60, 3, 1, csBolts, firstCleat, secondCleat, inputBeam, ref createdObjectsArr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (COMException ex)
|
||||
{
|
||||
System.Diagnostics.Debug.WriteLine(ex.Message);
|
||||
bCreationStatus = false;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
System.Diagnostics.Debug.WriteLine(ex.Message);
|
||||
bCreationStatus = false;
|
||||
}
|
||||
|
||||
m_Joint.CreationStatus = bCreationStatus;
|
||||
m_Joint.CreatedObjects = createdObjectsArr;
|
||||
}
|
||||
|
||||
public void GetUserPages(RulePageArray pagesRet, PropertySheetData pPropSheetData)
|
||||
{
|
||||
//Set Title(From AstCrtlDb)
|
||||
pPropSheetData.SheetPrompt = 88270;
|
||||
|
||||
//First Page bitmap index(From AstorBitmaps)
|
||||
pPropSheetData.FirstPageBitmapIndex = 60782;
|
||||
pPropSheetData.ResizeOption = eGUIDimension.kStandard;
|
||||
|
||||
//Property Sheet 1
|
||||
RulePage rulePage1 = m_Joint.CreateRulePage();
|
||||
rulePage1.title = 88438; //Base plate layout
|
||||
m_GUI = new SampleClipUI(this);
|
||||
rulePage1.hWnd = m_GUI.Handle.ToInt64();
|
||||
pagesRet.Add(rulePage1);
|
||||
}
|
||||
|
||||
public void FreeUserPages()
|
||||
{
|
||||
m_GUI.Close();
|
||||
m_GUI.Dispose();
|
||||
}
|
||||
|
||||
public void GetExportData(IRuleExportFiler pExportFiler)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public bool GetFeatureName(ref string FeatureName)
|
||||
{
|
||||
FeatureName = "";
|
||||
return false;
|
||||
}
|
||||
|
||||
public void InvalidFeature(int reserved)
|
||||
{
|
||||
}
|
||||
|
||||
public bool ConvertFromHRL(HRLConvertFiler filer, string OldHRLRuleName)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public Joint Joint
|
||||
{
|
||||
set
|
||||
{
|
||||
m_Joint = value;
|
||||
}
|
||||
get
|
||||
{
|
||||
return m_Joint;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\StructuralConnectionsSDKSamples.Common.props" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x64</Platform>
|
||||
<ProjectGuid>{8CFF2BFD-0E4D-4A20-95F4-C1FD4BDF0703}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SampleClipAngle</RootNamespace>
|
||||
<AssemblyName>SampleClipAngle</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ASRepository">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\ASRepository.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DotNetRoots">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\DotNetRoots.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Autodesk.SteelConnections.ASRvtModeler">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\Autodesk.SteelConnections.ASRvtModeler.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AxInterop.ASTCONTROLSLib">
|
||||
<Private>False</Private>
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\AxInterop.ASTCONTROLSLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Interop.AstSTEELAUTOMATIONLib5">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
<HintPath>$(ASInstallDir)\Interop.AstSTEELAUTOMATIONLib5.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Interop.DSCGEOMCOMLib">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
<HintPath>$(ASInstallDir)\Interop.DSCGEOMCOMLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Interop.DSCODBCCOMLib">
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
<HintPath>$(ASInstallDir)\Interop.DSCODBCCOMLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Interop.DSCPROFILESACCESSCOMLib">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
<HintPath>$(ASInstallDir)\Interop.DSCPROFILESACCESSCOMLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Interop.DSCRootsCOMLib">
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
<HintPath>$(ASInstallDir)\Interop.DSCRootsCOMLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="SampleClipAngle.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SampleClipUI.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SampleClipUI.Designer.cs">
|
||||
<DependentUpon>SampleClipUI.cs</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="SampleClipUI.resx">
|
||||
<DependentUpon>SampleClipUI.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,154 @@
|
||||
namespace SampleClipAngle
|
||||
{
|
||||
partial class SampleClipUI
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SampleClipUI));
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.axAstComboProfile1 = new AxASTCONTROLSLib.AxAstComboProfile();
|
||||
this.axBoltStandards1 = new AxASTCONTROLSLib.AxBoltStandards();
|
||||
this.axAstBMP1 = new AxASTCONTROLSLib.AxAstControls();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstComboProfile1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axBoltStandards1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstBMP1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(11, 11);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(62, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Cleat profile";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(10, 37);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(70, 13);
|
||||
this.label2.TabIndex = 1;
|
||||
this.label2.Text = "Bolt Diameter";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(10, 62);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(52, 13);
|
||||
this.label3.TabIndex = 2;
|
||||
this.label3.Text = "Bolt Type";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(10, 87);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(57, 13);
|
||||
this.label4.TabIndex = 3;
|
||||
this.label4.Text = "Bolt Grade";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(10, 109);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(72, 13);
|
||||
this.label5.TabIndex = 4;
|
||||
this.label5.Text = "Bolt Assembly";
|
||||
//
|
||||
// axAstComboProfile1
|
||||
//
|
||||
this.axAstComboProfile1.Location = new System.Drawing.Point(89, 11);
|
||||
this.axAstComboProfile1.Name = "axAstComboProfile1";
|
||||
this.axAstComboProfile1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAstComboProfile1.OcxState")));
|
||||
this.axAstComboProfile1.Size = new System.Drawing.Size(221, 100);
|
||||
this.axAstComboProfile1.TabIndex = 5;
|
||||
this.axAstComboProfile1.ProfileChanged += new System.EventHandler(this.axAstComboProfile1_ProfileChanged);
|
||||
//
|
||||
// axBoltStandards1
|
||||
//
|
||||
this.axBoltStandards1.Location = new System.Drawing.Point(89, 37);
|
||||
this.axBoltStandards1.Name = "axBoltStandards1";
|
||||
this.axBoltStandards1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axBoltStandards1.OcxState")));
|
||||
this.axBoltStandards1.Size = new System.Drawing.Size(221, 202);
|
||||
this.axBoltStandards1.TabIndex = 6;
|
||||
this.axBoltStandards1.BoltChanged += new System.EventHandler(this.axBoltStandards1_BoltChanged);
|
||||
//
|
||||
// axAstBMP1
|
||||
//
|
||||
this.axAstBMP1.Location = new System.Drawing.Point(316, 11);
|
||||
this.axAstBMP1.Name = "axAstBMP1";
|
||||
this.axAstBMP1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAstBMP1.OcxState")));
|
||||
this.axAstBMP1.Size = new System.Drawing.Size(200, 200);
|
||||
this.axAstBMP1.TabIndex = 7;
|
||||
//
|
||||
// SampleClipUI
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(529, 255);
|
||||
this.Controls.Add(this.axBoltStandards1);
|
||||
this.Controls.Add(this.axAstComboProfile1);
|
||||
this.Controls.Add(this.axAstBMP1);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.Name = "SampleClipUI";
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.Text = "SampleClipUI";
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstComboProfile1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axBoltStandards1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstBMP1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private AxASTCONTROLSLib.AxBoltStandards axBoltStandards1;
|
||||
private AxASTCONTROLSLib.AxAstComboProfile axAstComboProfile1;
|
||||
private AxASTCONTROLSLib.AxAstControls axAstBMP1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
using AstSTEELAUTOMATIONLib;
|
||||
using Autodesk.AdvanceSteel.DotNetRoots;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace SampleClipAngle
|
||||
{
|
||||
public partial class SampleClipUI : Form
|
||||
{
|
||||
private const int WS_CHILD = 0x40000000;
|
||||
private SampleClipAngle m_pCurRule;
|
||||
private bool m_bIsInitialising = true;
|
||||
public SampleClipUI(SampleClipAngle clipAngleRule)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
axAstComboProfile1.Location = AstDpi.Scale(axAstComboProfile1.Location);
|
||||
axBoltStandards1.Location = AstDpi.Scale(axBoltStandards1.Location);
|
||||
axAstBMP1.Location = AstDpi.Scale(axAstBMP1.Location);
|
||||
|
||||
m_pCurRule = clipAngleRule;
|
||||
|
||||
axAstComboProfile1.CurrentProfileName = "AISC 15.0 Angle equal#@§@#L4X4X3/8";
|
||||
axAstComboProfile1.UseFilterClass = true;
|
||||
axAstComboProfile1.ShowHideAllSections = true;
|
||||
axAstComboProfile1.AppendAcceptedClassGroup("W");
|
||||
axAstComboProfile1.CurrentClass = m_pCurRule.m_sProfType;
|
||||
axAstComboProfile1.CurrentSection = m_pCurRule.m_sProfSize;
|
||||
|
||||
axBoltStandards1.BoltStandard = m_pCurRule.m_sBoltsStandard;
|
||||
axBoltStandards1.BoltMaterial = m_pCurRule.m_sBoltsMaterial;
|
||||
axBoltStandards1.BoltSet = m_pCurRule.m_sBoltsSet;
|
||||
axBoltStandards1.BoltDiameter = m_pCurRule.m_dBoltsDiameter;
|
||||
|
||||
m_bIsInitialising = false;
|
||||
}
|
||||
|
||||
protected override CreateParams CreateParams
|
||||
{
|
||||
get
|
||||
{
|
||||
CreateParams cp = base.CreateParams;
|
||||
cp.Style = cp.Style | WS_CHILD;
|
||||
return cp;
|
||||
}
|
||||
}
|
||||
|
||||
private void axAstComboProfile1_ProfileChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!m_bIsInitialising && m_pCurRule != null)
|
||||
{
|
||||
IJoint curJoint = m_pCurRule.Joint;
|
||||
|
||||
if (!axAstComboProfile1.Enabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_pCurRule.m_sProfType != axAstComboProfile1.CurrentClass ||
|
||||
m_pCurRule.m_sProfSize != axAstComboProfile1.CurrentSection)
|
||||
{
|
||||
m_pCurRule.m_sProfType = axAstComboProfile1.CurrentClass;
|
||||
m_pCurRule.m_sProfSize = axAstComboProfile1.CurrentSection;
|
||||
|
||||
curJoint.SaveData(m_pCurRule);
|
||||
curJoint.UpdateDrivenConstruction();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void axBoltStandards1_BoltChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!m_bIsInitialising && m_pCurRule != null)
|
||||
{
|
||||
IJoint curJoint = m_pCurRule.Joint;
|
||||
|
||||
double tempValueDiameter = axBoltStandards1.BoltDiameter;
|
||||
string tempValueGrade = axBoltStandards1.BoltMaterial;
|
||||
string tempValueAssembly = axBoltStandards1.BoltSet;
|
||||
string tempValueType = axBoltStandards1.BoltStandard;
|
||||
|
||||
string jointGrade = m_pCurRule.m_sBoltsMaterial;
|
||||
string jointAssembly = m_pCurRule.m_sBoltsSet;
|
||||
string jointType = m_pCurRule.m_sBoltsStandard;
|
||||
|
||||
if ((tempValueDiameter != m_pCurRule.m_dBoltsDiameter) ||
|
||||
(tempValueGrade != jointGrade) ||
|
||||
(tempValueAssembly != jointAssembly) ||
|
||||
(tempValueType != jointType))
|
||||
{
|
||||
m_pCurRule.m_dBoltsDiameter = tempValueDiameter;
|
||||
m_pCurRule.m_sBoltsMaterial = tempValueGrade;
|
||||
m_pCurRule.m_sBoltsSet = tempValueAssembly;
|
||||
m_pCurRule.m_sBoltsStandard = tempValueType;
|
||||
|
||||
curJoint.SaveData(m_pCurRule);
|
||||
curJoint.UpdateDrivenConstruction();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="axBoltStandards1.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAUQAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAADwAAAADAAEA1xYAAHAKAABEAAAA/wEAAAAA/////////////////////wAA
|
||||
AAAAAAAAAAD//v8A//7/AP/+/wAL
|
||||
</value>
|
||||
</data>
|
||||
<data name="axAstComboProfile1.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA/wAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAAOoAAAADAAEA1xYAACsFAABEAAAAAANS4wuRj84RneMAqgBLuFEBAAAAkAFE
|
||||
QgEAFE1pY3Jvc29mdCBTYW5zIFNlcmlmAQD//v8iQQBJAFMAQwAgADEANQAuADAAIABBAG4AZwBsAGUA
|
||||
IABlAHEAdQBhAGwAIwBAAKcAQAAjAEwANABYADQAWAAzAC8AOAD//v8VQQBJAFMAQwAgADEANQAuADAA
|
||||
IABBAG4AZwBsAGUAIABlAHEAdQBhAGwA//7/CEwANABYADQAWAAzAC8AOAAAZQAAAGYAAABoAAAAAP//
|
||||
//8AAB4AAAAAAAAAAAAL
|
||||
</value>
|
||||
</data>
|
||||
<data name="axAstBMP1.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAKgAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAABUAAAADAAEAVgoAAFYKAABAAAAAAVfrAAAL
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,626 @@
|
||||
#include "pch.h"
|
||||
#include "ClipAngle.h"
|
||||
#include <corecrt_math_defines.h>
|
||||
#include "NativeClipAnglePage.h"
|
||||
|
||||
|
||||
|
||||
|
||||
STDMETHODIMP SampleClipAngle::InterfaceSupportsErrorInfo(REFIID riid)
|
||||
{
|
||||
static const IID* arr[] =
|
||||
{
|
||||
&IID_ISampleClipAngle,
|
||||
};
|
||||
|
||||
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
|
||||
{
|
||||
if (IsEqualGUID(*arr[i], riid))
|
||||
return S_OK;
|
||||
}
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
STDMETHODIMP SampleClipAngle::get_Joint(IJoint** pVal)
|
||||
{
|
||||
if (m_pJoint == NULL)
|
||||
return E_POINTER;
|
||||
|
||||
IJoint* pNewJoint;
|
||||
HRESULT hr = m_pJoint->QueryInterface(IID_IJoint, (void**)&pNewJoint);
|
||||
|
||||
if (SUCCEEDED(hr))
|
||||
*pVal = pNewJoint;
|
||||
return hr;
|
||||
|
||||
}
|
||||
|
||||
STDMETHODIMP SampleClipAngle::put_Joint(IJoint* pVal)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
if (m_pJoint)
|
||||
{
|
||||
m_pJoint->Release();
|
||||
m_pJoint = NULL;
|
||||
}
|
||||
|
||||
if (NULL != pVal)
|
||||
hr |= pVal->QueryInterface(IID_IJoint, (void**)&m_pJoint);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
void
|
||||
SampleClipAngle::SplitBeamsInternalName(BSTR fullInternal, BSTR& classInternal, BSTR& sectionInternal)
|
||||
{
|
||||
CString intName(fullInternal);
|
||||
CString intClass = L"";
|
||||
CString intSection = L"";
|
||||
|
||||
int position = -1;
|
||||
position = intName.Find(CString(L"#@§@#"));
|
||||
if (position > 0)
|
||||
{
|
||||
intClass = intName.Left(position);
|
||||
intSection = intName.Right(intName.GetLength() - (position + 5));
|
||||
|
||||
//set the values in the output parameters
|
||||
classInternal = intClass.AllocSysString();
|
||||
sectionInternal = intSection.AllocSysString();
|
||||
}
|
||||
else
|
||||
{
|
||||
//set default values in the output parameters (empty strings)
|
||||
classInternal = intClass.AllocSysString();
|
||||
sectionInternal = intSection.AllocSysString();
|
||||
}
|
||||
}
|
||||
|
||||
STDMETHODIMP SampleClipAngle::Query(IAstUI* pAstUI)
|
||||
{
|
||||
if (!m_pJoint)
|
||||
return E_FAIL;
|
||||
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
//create an array to store the input objects
|
||||
IAstObjectsArrPtr inputObjectsArr;
|
||||
hr |= m_pJoint->CreateObjectsArray(&inputObjectsArr);
|
||||
|
||||
IClassFilterPtr classFilter;
|
||||
hr |= pAstUI->GetClassFilter(&classFilter);
|
||||
|
||||
hr |= classFilter->AppendAcceptedClass(kBeamClass);
|
||||
|
||||
eUIErrorCodes errCode;
|
||||
IAstObjectPtr column, beam;
|
||||
|
||||
//Get the column
|
||||
hr |= pAstUI->AcquireSingleObject(88270, &errCode, &column);
|
||||
|
||||
if ((kUICancel == errCode) || (kUINoResult == errCode)) //user abort
|
||||
{
|
||||
return E_ABORT;
|
||||
}
|
||||
|
||||
if (SUCCEEDED(hr))
|
||||
hr |= inputObjectsArr->Add(column);
|
||||
|
||||
//select beam to connect
|
||||
hr |= pAstUI->AcquireSingleObject(88271, &errCode, &beam);
|
||||
if ((kUICancel == errCode) || (kUINoResult == errCode)) //user abort
|
||||
{
|
||||
return E_ABORT;
|
||||
}
|
||||
//add the beam in the input objects array
|
||||
if (SUCCEEDED(hr))
|
||||
hr |= inputObjectsArr->Add(beam);
|
||||
|
||||
|
||||
//add all the objects selected by the user(input objects)
|
||||
m_pJoint->put_InputObjects(inputObjectsArr);
|
||||
|
||||
IOdbcUtilsPtr tableUtils;
|
||||
hr |= tableUtils.CreateInstance("DSCOdbcCom.OdbcUtils");
|
||||
|
||||
|
||||
CString angleDefault("HyperSectionW");
|
||||
BSTR defAngle;
|
||||
hr |= tableUtils->GetDefaultString(0, angleDefault.AllocSysString(), &defAngle);
|
||||
SplitBeamsInternalName(defAngle, m_sProfType, m_sProfSize);
|
||||
|
||||
|
||||
CString boltsDiameter("Diameter");
|
||||
CString boltsStandard("Norm");
|
||||
CString boltsSet("Garnitur");
|
||||
CString boltsMaterial("Material");
|
||||
|
||||
hr |= tableUtils->GetDefaultDouble(401, boltsDiameter.AllocSysString(), &m_dBoltsDiameter);
|
||||
hr |= tableUtils->GetDefaultString(401, boltsStandard.AllocSysString(), &m_sBoltsStandard);
|
||||
hr |= tableUtils->GetDefaultString(401, boltsSet.AllocSysString(), &m_sBoltsSet);
|
||||
hr |= tableUtils->GetDefaultString(401, boltsMaterial.AllocSysString(), &m_sBoltsMaterial);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
STDMETHODIMP SampleClipAngle::InField(IFiler* pFiler)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
//must be used in order to be able to check rule version
|
||||
//if changes are required in future releases
|
||||
long nVer;
|
||||
hr |= pFiler->readVersion(&nVer);
|
||||
|
||||
VARIANT var;
|
||||
//2.2.1 Sheet 1 "Angle cleat"
|
||||
|
||||
hr |= pFiler->readItem(CString("ProfType").AllocSysString(), &var);
|
||||
m_sProfType = var.bstrVal;
|
||||
hr |= pFiler->readItem(CString("ProfSize").AllocSysString(), &var);
|
||||
m_sProfSize = var.bstrVal;
|
||||
|
||||
hr |= pFiler->readItem(CString("BoltsDiameter").AllocSysString(), &var);
|
||||
m_dBoltsDiameter = var.dblVal;
|
||||
hr |= pFiler->readItem(CString("BoltsStandard").AllocSysString(), &var);
|
||||
m_sBoltsStandard = var.bstrVal;
|
||||
hr |= pFiler->readItem(CString("BoltsMaterial").AllocSysString(), &var);
|
||||
m_sBoltsMaterial = var.bstrVal;
|
||||
hr |= pFiler->readItem(CString("BoltsSet").AllocSysString(), &var);
|
||||
m_sBoltsSet = var.bstrVal;
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
STDMETHODIMP SampleClipAngle::OutField(IFiler* pFiler)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
hr |= pFiler->writeVersion(1);
|
||||
//2.2.1 Sheet 1 "Angle cleat"
|
||||
hr |= pFiler->writeItem(CComVariant(m_sProfType), CString("ProfType").AllocSysString());
|
||||
hr |= pFiler->writeItem(CComVariant(m_sProfSize), CString("ProfSize").AllocSysString());
|
||||
|
||||
hr |= pFiler->writeItem(CComVariant(m_dBoltsDiameter), CString("BoltsDiameter").AllocSysString());
|
||||
hr |= pFiler->writeItem(CComVariant(m_sBoltsStandard), CString("BoltsStandard").AllocSysString());
|
||||
hr |= pFiler->writeItem(CComVariant(m_sBoltsMaterial), CString("BoltsMaterial").AllocSysString());
|
||||
hr |= pFiler->writeItem(CComVariant(m_sBoltsSet), CString("BoltsSet").AllocSysString());
|
||||
|
||||
return hr;
|
||||
}
|
||||
STDMETHODIMP SampleClipAngle::GetTableName(BSTR* pStrTableName)
|
||||
{
|
||||
if (pStrTableName == NULL)
|
||||
return E_POINTER;
|
||||
|
||||
// table name
|
||||
CString tableName("");
|
||||
|
||||
*pStrTableName = tableName.AllocSysString();
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP SampleClipAngle::CreateObjects()
|
||||
{
|
||||
|
||||
if (!m_pJoint)
|
||||
return E_FAIL;
|
||||
|
||||
HRESULT ruleCreateObjectsMethodStatus = S_OK;
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
//get the joint input objects array - previously saved in Query part
|
||||
IAstObjectsArrPtr spInObj;
|
||||
hr |= m_pJoint->get_InputObjects(&spInObj);
|
||||
|
||||
//create an array that will contain all the AS objects created by the joint
|
||||
IAstObjectsArrPtr createdObjects;
|
||||
hr |= m_pJoint->CreateObjectsArray(&createdObjects);
|
||||
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
try
|
||||
{
|
||||
bool bCreationStatus = true;
|
||||
//declare the created objects
|
||||
|
||||
//retrieve the beam & the column from the input objects array
|
||||
IBeamPtr inputColumn, inputBeam;
|
||||
hr |= spInObj->get_Item(CComVariant(0), (IAstObject**)&inputColumn);
|
||||
hr |= spInObj->get_Item(CComVariant(1), (IAstObject**)&inputBeam);
|
||||
|
||||
ICS3dPtr csColumn, csBeam;
|
||||
hr |= inputColumn->get_cs(&csColumn);
|
||||
hr |= inputBeam->get_cs(&csBeam);
|
||||
|
||||
IVector3dPtr vZColumn, vZBeam;
|
||||
hr |= csBeam->get_ZAxis(&vZBeam);
|
||||
hr |= csColumn->get_ZAxis(&vZColumn);
|
||||
|
||||
VARIANT_BOOL vectArePerpendicular;
|
||||
hr |= vZBeam->IsPerpendicularToTol(vZColumn, 0.01, &vectArePerpendicular);
|
||||
if (VARIANT_TRUE == vectArePerpendicular)
|
||||
{
|
||||
//Get the plane where the beam and shortening intersect
|
||||
IPlanePtr plShortening;
|
||||
hr |= GetFacePlane(inputColumn, inputBeam, plShortening);
|
||||
|
||||
eBeamEnd beamCutEnd;
|
||||
IPoint3dPtr ptClosestOnColumn;
|
||||
hr |= plShortening->get_PointOnPlane(&ptClosestOnColumn);
|
||||
|
||||
//Get the beam cs in the closest point on the column
|
||||
ICS3dPtr csBeamAtIntersectionPoint;
|
||||
hr |= inputBeam->getCSAtPoint(ptClosestOnColumn, &csBeamAtIntersectionPoint);
|
||||
|
||||
//Find the cs where at the beam end that needs to be cut
|
||||
ICS3dPtr csCutBeam;
|
||||
hr |= inputBeam->getCutOuterCS(VARIANT_TRUE, inputColumn, -1, &csCutBeam, &beamCutEnd, VARIANT_TRUE);
|
||||
|
||||
//Add a shortening to trim/extend the beam until it touches the column
|
||||
IBeamShorteningPtr shortening;
|
||||
hr |= inputBeam->addBeamShortening(beamCutEnd, plShortening, &shortening);
|
||||
if (hr == S_OK)
|
||||
hr |= createdObjects->Add(shortening);
|
||||
|
||||
//Create an L shaped beam as the first clip angle cleat
|
||||
//We want to put 2 L shaped beams perpendicular to the input beam - on the input beam Z
|
||||
|
||||
IProfTypePtr profType;
|
||||
hr |= profType.CreateInstance("DSCProfilesAccessCom.ProfType");
|
||||
hr |= profType->createProfType(m_sProfType, m_sProfSize);
|
||||
|
||||
IVector3dPtr vectLBeamDir, vectLBeamTranslationX, vectLBeamTranslationY;
|
||||
hr |= csBeamAtIntersectionPoint->get_ZAxis(&vectLBeamDir);
|
||||
hr |= csBeamAtIntersectionPoint->get_XAxis(&vectLBeamTranslationX);
|
||||
hr |= csBeamAtIntersectionPoint->get_YAxis(&vectLBeamTranslationY);
|
||||
|
||||
//Compute the first cleat it's start/endpoints
|
||||
IPoint3dPtr ptCleatStart, ptOnPlane;
|
||||
hr |= plShortening->get_PointOnPlane(&ptOnPlane);
|
||||
hr |= MovePoint(ptOnPlane, vectLBeamDir, -100, ptCleatStart);
|
||||
|
||||
//Find the beam we thickness and offset the cleat outside it a bit
|
||||
IProfTypePtr profBeam;
|
||||
hr |= inputBeam->getProfType(&profBeam);
|
||||
double dBeamWeb = 0.;
|
||||
hr |= profBeam->getGeometricalData(kWeb, &dBeamWeb);
|
||||
hr |= MovePoint(ptCleatStart, vectLBeamTranslationY, -dBeamWeb / 2, ptCleatStart);
|
||||
|
||||
IPoint3dPtr ptCleatEnd;
|
||||
hr |= MovePoint(ptCleatStart, vectLBeamDir, 200, ptCleatEnd);
|
||||
|
||||
//Create a model role for the first cleat
|
||||
IRolePtr spRole;
|
||||
hr |= m_pJoint->CreateRole(CString(L"Angle_Cleat#1").AllocSysString(), &spRole);
|
||||
|
||||
ICS3dPtr csCleat;
|
||||
hr |= csCleat.CreateInstance("DSCGeomCom.CS3d");
|
||||
hr |= csCleat->setFrom(csBeamAtIntersectionPoint);
|
||||
hr |= csCleat->RotateCSAroundY(M_PI / 2);
|
||||
hr |= csCleat->RotateCSAroundX(M_PI);
|
||||
|
||||
//Finnaly, create the beam
|
||||
IStraightBeamPtr firstCleat;
|
||||
hr |= m_pJoint->CreateStraightBeam(m_sProfType, m_sProfSize, spRole, ptCleatStart, ptCleatEnd, csCleat, &firstCleat);
|
||||
|
||||
if (hr == S_OK)
|
||||
{
|
||||
hr |= firstCleat->put_refAxis(kLowerLeft);
|
||||
hr |= createdObjects->Add(firstCleat);
|
||||
|
||||
//We will move the cleat cs to create the second cleat, therefore save it, for later when we create the bolts
|
||||
ICS3dPtr csBolts;
|
||||
hr |= csBolts.CreateInstance("DSCGeomCom.CS3d");
|
||||
hr |= csBolts->setFrom(csCleat);
|
||||
|
||||
//Perform calculations for the second cleat
|
||||
IPoint3dPtr ptBoltsOrig;
|
||||
hr |= ptBoltsOrig.CreateInstance("DSCGeomCom.Point3d");
|
||||
hr |= ptBoltsOrig->setFrom(ptCleatStart);
|
||||
|
||||
hr |= MovePoint(ptBoltsOrig, vectLBeamDir, 100, ptBoltsOrig);
|
||||
|
||||
hr |= csBolts->put_Origin(ptBoltsOrig);
|
||||
|
||||
hr |= MovePoint(ptCleatEnd, vectLBeamTranslationY, dBeamWeb, ptCleatEnd);
|
||||
hr |= MovePoint(ptCleatStart, vectLBeamTranslationY, dBeamWeb, ptCleatStart);
|
||||
|
||||
ICS3dPtr csCleat2;
|
||||
hr |= csCleat2.CreateInstance("DSCGeomCom.CS3d");
|
||||
hr |= csCleat2->setFrom(csBeamAtIntersectionPoint);
|
||||
hr |= csCleat2->RotateCSAroundZ(M_PI);
|
||||
|
||||
hr |= csCleat2->put_Origin(ptCleatStart);
|
||||
|
||||
//Create the cleat
|
||||
IStraightBeamPtr secondCleat;
|
||||
hr |= m_pJoint->CreateStraightBeam(m_sProfType, m_sProfSize, spRole, ptCleatEnd, ptCleatStart, csCleat, &secondCleat);
|
||||
|
||||
if (hr == S_OK)
|
||||
{
|
||||
//Now connect the L shaped beams with bolts on the main column and beam
|
||||
hr |= secondCleat->put_refAxis(kLowerLeft);
|
||||
hr |= createdObjects->Add(secondCleat);
|
||||
|
||||
hr |= CreateBoltPattern("Bolt#1", 100, 60, 3, 2, csBolts, firstCleat, secondCleat, inputColumn, createdObjects);
|
||||
|
||||
hr |= csBolts->RotateCSAroundX(M_PI / 2);
|
||||
IPoint3dPtr ptCsBoltOrig, csOrig;
|
||||
hr |= csBolts->get_Origin(&csOrig);
|
||||
hr |= MovePoint(csOrig, vectLBeamTranslationX, -50, ptCsBoltOrig);
|
||||
hr |= MovePoint(ptCsBoltOrig, vectLBeamTranslationY, 40, ptCsBoltOrig);
|
||||
hr |= csBolts->put_Origin(ptCsBoltOrig);
|
||||
|
||||
hr |= CreateBoltPattern(L"Bolt#2", 50, 60, 3, 1, csBolts, firstCleat, secondCleat, inputBeam, createdObjects);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (_com_error& e)
|
||||
{
|
||||
hr = e.Error();
|
||||
ruleCreateObjectsMethodStatus = hr;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
hr = E_FAIL;
|
||||
ruleCreateObjectsMethodStatus = hr;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
VARIANT_BOOL finishedCorrectly = VARIANT_TRUE;
|
||||
if (SUCCEEDED(ruleCreateObjectsMethodStatus))
|
||||
finishedCorrectly = VARIANT_TRUE;
|
||||
else
|
||||
finishedCorrectly = VARIANT_FALSE;
|
||||
|
||||
hr = m_pJoint->put_CreationStatus(finishedCorrectly);
|
||||
hr = m_pJoint->put_CreatedObjects(createdObjects);
|
||||
|
||||
return ruleCreateObjectsMethodStatus;
|
||||
|
||||
}
|
||||
STDMETHODIMP SampleClipAngle::GetUserPages(IRulePageArray* pagesRet, IPropertySheetData* pPropSheetData)
|
||||
{
|
||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
||||
pPropSheetData->put_SheetPrompt(88270);
|
||||
pPropSheetData->put_ResizeOption(kStandard);
|
||||
|
||||
IRulePagePtr page;
|
||||
m_pJoint->CreateRulePage(&page);
|
||||
page->put_title(88271);
|
||||
m_page = new NativeClipAnglePage();
|
||||
m_page->Create(IDD_CLIPANGLEDIALOG, NativeClipAnglePage::GetParentWindow());
|
||||
|
||||
|
||||
m_page->setJoint(this);
|
||||
|
||||
page->put_hWnd((DWORD_PTR)m_page->GetSafeHwnd());
|
||||
pagesRet->Add(page);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
//unload all pages
|
||||
STDMETHODIMP SampleClipAngle::FreeUserPages()
|
||||
{
|
||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
||||
|
||||
if (m_page)
|
||||
{
|
||||
m_page->DestroyWindow();
|
||||
delete m_page;
|
||||
m_page = NULL;
|
||||
}
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
STDMETHODIMP SampleClipAngle::GetExportData(IRuleExportFiler* pExportFiler)
|
||||
{
|
||||
return S_OK;
|
||||
}
|
||||
STDMETHODIMP SampleClipAngle::GetFeatureName(BSTR* FeatureName, VARIANT_BOOL* hasFeature)
|
||||
{
|
||||
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
if (FeatureName == NULL || hasFeature == NULL)
|
||||
return E_POINTER;
|
||||
|
||||
*hasFeature = VARIANT_FALSE;
|
||||
return hr;
|
||||
|
||||
}
|
||||
|
||||
|
||||
STDMETHODIMP SampleClipAngle::InvalidFeature(int reserved)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
return hr;
|
||||
}
|
||||
|
||||
STDMETHODIMP SampleClipAngle::ConvertFromHRL(IConvertFiler* filer, BSTR OldHRLRuleName, VARIANT_BOOL* Converted)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
*Converted = VARIANT_FALSE;
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
//Returns the beam cs at the given point
|
||||
HRESULT
|
||||
SampleClipAngle::GetBeamCSAtPoint(IBeamPtr spBeam, IPoint3dPtr spPoint, ICS3dPtr& spCS)
|
||||
{
|
||||
//TO DO - Add comments
|
||||
//Get the beam cs at start
|
||||
HRESULT hr = E_FAIL;
|
||||
|
||||
ICS3dPtr spStartCS;
|
||||
hr = spBeam->getSysCSAt(kBeamStart, &spStartCS);
|
||||
IMatrix3dPtr spAlignMatrix;
|
||||
|
||||
|
||||
IPoint3dPtr spCSPoint;
|
||||
hr = spBeam->getClosestPointToSystemline(spPoint, VARIANT_FALSE, &spCSPoint);
|
||||
hr = spBeam->getCSAtPoint(spCSPoint, &spCS);
|
||||
|
||||
|
||||
hr = spStartCS->SetToAlignCS(spCS, &spAlignMatrix);
|
||||
|
||||
hr = spCS->get_Origin(&spCSPoint);
|
||||
IVector3dPtr spOffsetVector;
|
||||
|
||||
hr = spBeam->GetCurrentSys2Phys3dOffset(&spOffsetVector);
|
||||
hr = spOffsetVector->TransformBy(spAlignMatrix);
|
||||
hr = spCSPoint->Add(spOffsetVector);
|
||||
hr = spCS->put_Origin(spCSPoint);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
SampleClipAngle::IntersectBeam(IStraightBeamPtr beam, IPoint3dPtr linePt, IVector3dPtr lineVect, IPoint3dArrayPtr &ptsInter)
|
||||
{
|
||||
//Create a line from the input point and vector
|
||||
ILine3dPtr line;
|
||||
HRESULT hr = S_OK;
|
||||
hr |= line.CreateInstance("DSCGeomCom.Line3d");
|
||||
hr |= line->CreateFromVectorAndPoint(linePt, lineVect);
|
||||
|
||||
//Get the body of the column
|
||||
IAstModelerPtr bodyColumn;
|
||||
hr |= beam->getAstModeler(kBodyUnNotched, &bodyColumn);
|
||||
|
||||
//Interect it with the line
|
||||
hr |= bodyColumn->intersectWithLine(line, &ptsInter);
|
||||
|
||||
//Return the resulted intersection points
|
||||
return hr;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
SampleClipAngle::GetFacePlane(IStraightBeamPtr inputColumn, IStraightBeamPtr inputBeam, IPlanePtr &resPlane)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
//Result plane
|
||||
resPlane.CreateInstance("DSCGeomCom.Plane");
|
||||
|
||||
//Get the beam outer cs
|
||||
eBeamEnd beamStart;
|
||||
ICS3dPtr outerCS;
|
||||
hr |= inputBeam->getCutOuterCS(VARIANT_TRUE, inputColumn, -1, &outerCS, &beamStart, VARIANT_TRUE);
|
||||
|
||||
//Change the z vector direction
|
||||
IVector3dPtr outerVectZ;
|
||||
hr |= outerCS->get_ZAxis(&outerVectZ);
|
||||
hr |= outerVectZ->Multiply(-1);
|
||||
|
||||
IPoint3dPtr outerCSOrigin;
|
||||
hr |= outerCS->get_Origin(&outerCSOrigin);
|
||||
|
||||
//Get the column cs at the outer cs origin
|
||||
ICS3dPtr mainCSAtPoint;
|
||||
hr |= GetBeamCSAtPoint(inputColumn, outerCSOrigin, mainCSAtPoint);
|
||||
|
||||
//Compute tranformation matrix
|
||||
IPoint3dPtr axisPoint;
|
||||
hr |= mainCSAtPoint->get_Origin(&axisPoint);
|
||||
ICS3dPtr midCS;
|
||||
hr |= inputColumn->get_PhysicalCSMid(&midCS);
|
||||
IMatrix3dPtr alignMatrix;
|
||||
hr |= mainCSAtPoint->SetToAlignCS(midCS, &alignMatrix);
|
||||
|
||||
//Transform the points which will constitute the line which we want to intersect with the beam
|
||||
hr |= axisPoint->TransformBy(alignMatrix);
|
||||
hr |= outerVectZ->TransformBy(alignMatrix);
|
||||
|
||||
|
||||
//Get the intersection points
|
||||
IPoint3dArrayPtr intersectionPts;
|
||||
hr |= IntersectBeam(inputColumn, axisPoint, outerVectZ, intersectionPts);
|
||||
|
||||
//If we have intersection points, create a plane at the first intersection point
|
||||
VARIANT count;
|
||||
|
||||
hr |= intersectionPts->get_Count(&count);
|
||||
if (count.intVal != 0)
|
||||
{
|
||||
IPoint3dPtr tempPt;
|
||||
hr |= intersectionPts->get_Item(CComVariant(0), &tempPt);
|
||||
hr |= axisPoint->setFrom(tempPt);
|
||||
|
||||
|
||||
hr |= midCS->SetToAlignCS(mainCSAtPoint, &alignMatrix);
|
||||
hr |= axisPoint->TransformBy(alignMatrix);
|
||||
hr |= outerVectZ->TransformBy(alignMatrix);
|
||||
|
||||
hr |= resPlane->CreateFromPointAndNormal(axisPoint, outerVectZ);
|
||||
}
|
||||
VariantClear(&count);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
HRESULT
|
||||
SampleClipAngle::MovePoint(IPoint3dPtr ptIn, IVector3dPtr vMove, double moveDist, IPoint3dPtr& retPoint)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
hr |= retPoint.CreateInstance("DSCGeomCom.Point3d");
|
||||
hr |= retPoint->setFrom(ptIn);
|
||||
|
||||
IVector3dPtr vect1;
|
||||
hr |= vect1.CreateInstance("DSCGeomCom.Vector3d");
|
||||
|
||||
hr |= vect1->setFrom(vMove);
|
||||
hr |= vect1->Normalize();
|
||||
hr |= vect1->Multiply(moveDist);
|
||||
hr |= retPoint->Add(vect1);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
SampleClipAngle::CreateBoltPattern(CString boltRole, double dBoltWidth, double dBoltHeight, int nXBolts, int nYBolts, ICS3dPtr csBolts, IBeamPtr cleat1, IBeamPtr cleat2, IBeamPtr beam, IAstObjectsArrPtr& createdObjectsArr)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
//CProfileUtils pu;
|
||||
|
||||
IRolePtr role;
|
||||
hr |= m_pJoint->CreateRole(boltRole.AllocSysString(), &role); //role object
|
||||
|
||||
IBoltPtr bolt;
|
||||
hr |= m_pJoint->CreateBoltFinitRect(role, m_sBoltsMaterial, m_sBoltsStandard, 0, 0, dBoltHeight, dBoltWidth, nXBolts, nYBolts, m_dBoltsDiameter, csBolts, &bolt);
|
||||
|
||||
if (hr == S_OK)
|
||||
{
|
||||
IAstObjectsArrPtr conObj;
|
||||
hr |= m_pJoint->CreateObjectsArray(&conObj);
|
||||
hr |= conObj->Add(cleat1);
|
||||
|
||||
hr |= conObj->Add(cleat2);
|
||||
|
||||
hr |= conObj->Add(beam);
|
||||
|
||||
hr |= bolt->Connect(conObj, kOnSite);
|
||||
hr |= createdObjectsArr->Add(bolt);
|
||||
}
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
STDMETHODIMP SampleClipAngle::BoldParameters(SAFEARRAY** pArrParams)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
return hr;
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
#pragma once
|
||||
|
||||
class SampleClipAngle :
|
||||
public IDispatchImpl<ISampleClipAngle, &IID_ISampleClipAngle, &LIBID_SampleClipJointLib>,
|
||||
public ISupportErrorInfo,
|
||||
public CComObjectRoot,
|
||||
public CComCoClass<SampleClipAngle, &CLSID_SampleClipAngle>,
|
||||
public IDispatchImpl<IRule, &IID_IRule, &LIBID_AstSTEELAUTOMATIONLib, MAJVER_AstSTEELAUTOMATIONLib>,
|
||||
public IDispatchImpl<IRuleExtension, &IID_IRuleExtension, &LIBID_AstSTEELAUTOMATIONLib, MAJVER_AstSTEELAUTOMATIONLib>
|
||||
{
|
||||
|
||||
private:
|
||||
IJoint* m_pJoint;
|
||||
HRESULT MovePoint(IPoint3dPtr ptIn, IVector3dPtr vMove, double moveDist, IPoint3dPtr& retPoint);
|
||||
|
||||
HRESULT CreateBoltPattern(CString boltRole, double dBoltWidth, double dBoltHeight, int nXBolts, int nYBolts, ICS3dPtr csBolts, IBeamPtr cleat1, IBeamPtr cleat2, IBeamPtr beam, IAstObjectsArrPtr& createdObjectsArr);
|
||||
|
||||
HRESULT IntersectBeam(IStraightBeamPtr beam, IPoint3dPtr linePt, IVector3dPtr lineVect, IPoint3dArrayPtr &ptsIntersection);
|
||||
|
||||
HRESULT GetBeamCSAtPoint(IBeamPtr spBeam, IPoint3dPtr spPoint, ICS3dPtr& spCS);
|
||||
|
||||
HRESULT GetFacePlane(IStraightBeamPtr inputColumn, IStraightBeamPtr inputBeam, IPlanePtr &resPlane);
|
||||
|
||||
void SplitBeamsInternalName(BSTR fullInternal, BSTR& classInternal, BSTR& sectionInternal);
|
||||
|
||||
public:
|
||||
BEGIN_COM_MAP(SampleClipAngle)
|
||||
//DEL COM_INTERFACE_ENTRY(IDispatch)
|
||||
COM_INTERFACE_ENTRY(ISampleClipAngle)
|
||||
COM_INTERFACE_ENTRY(ISupportErrorInfo)
|
||||
COM_INTERFACE_ENTRY2(IDispatch, ISampleClipAngle)
|
||||
COM_INTERFACE_ENTRY(IRule)
|
||||
COM_INTERFACE_ENTRY(IRuleExtension)
|
||||
END_COM_MAP()
|
||||
//DECLARE_NOT_AGGREGATABLE(CUSClipAngle)
|
||||
// Remove the comment from the line above if you don't want your object to
|
||||
// support aggregation.
|
||||
|
||||
DECLARE_REGISTRY_RESOURCEID(IDR_SampleClipAngle)
|
||||
// ISupportsErrorInfo
|
||||
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
|
||||
|
||||
|
||||
// IRule
|
||||
STDMETHOD(get_Joint)(IJoint** pVal);
|
||||
STDMETHOD(put_Joint)(IJoint* pVal);
|
||||
STDMETHOD(Query)(IAstUI* pAstUI);
|
||||
STDMETHOD(InField)(IFiler* pFiler);
|
||||
STDMETHOD(OutField)(IFiler* pFiler);
|
||||
STDMETHOD(GetTableName)(BSTR* pStrTableName);
|
||||
STDMETHOD(CreateObjects)();
|
||||
STDMETHOD(GetUserPages)(IRulePageArray* pagesRet, IPropertySheetData* pPropSheetData);
|
||||
STDMETHOD(FreeUserPages)();
|
||||
STDMETHOD(GetExportData)(IRuleExportFiler* pExportFiler);
|
||||
STDMETHOD(GetFeatureName)(BSTR* FeatureName, VARIANT_BOOL* hasFeature);
|
||||
STDMETHOD(InvalidFeature)(INT reserved);
|
||||
STDMETHOD(ConvertFromHRL)(IConvertFiler* filer, BSTR OldHRLRuleName, VARIANT_BOOL* Converted);
|
||||
STDMETHOD(BoldParameters)(SAFEARRAY**);
|
||||
|
||||
class NativeClipAnglePage* m_page;
|
||||
BSTR m_sProfType;
|
||||
BSTR m_sProfSize;
|
||||
BSTR m_sBoltsStandard;
|
||||
BSTR m_sBoltsMaterial;
|
||||
BSTR m_sBoltsSet;
|
||||
double m_dBoltsDiameter;
|
||||
};
|
||||
@@ -0,0 +1,23 @@
|
||||
HKCR
|
||||
{
|
||||
SampleClipAngleNative.SampleClipAngle.1 = s 'SampleClipAngle Class'
|
||||
{
|
||||
CLSID = s '{FD62E6AB-0412-4F2B-9DB8-C5D5385F8042}'
|
||||
}
|
||||
SampleClipAngleNative.SampleClipAngle = s 'SampleClipAngle Class'
|
||||
{
|
||||
CLSID = s '{FD62E6AB-0412-4F2B-9DB8-C5D5385F8042}'
|
||||
}
|
||||
NoRemove CLSID
|
||||
{
|
||||
ForceRemove {FD62E6AB-0412-4F2B-9DB8-C5D5385F8042} = s 'SampleClipAngle Class'
|
||||
{
|
||||
ProgID = s 'SampleClipAngleNative.SampleClipAngle.1'
|
||||
VersionIndependentProgID = s 'SampleClipAngleNative.SampleClipAngle'
|
||||
InprocServer32 = s '%MODULE%'
|
||||
{
|
||||
val ThreadingModel = s 'Apartment'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
#include "pch.h"
|
||||
#include <initguid.h>
|
||||
#include "SampleClipAngleNative_i.c"
|
||||
|
||||
CComModule _Module;
|
||||
BEGIN_OBJECT_MAP(ObjectMap)
|
||||
|
||||
OBJECT_ENTRY(CLSID_SampleClipAngle, SampleClipAngle)
|
||||
|
||||
|
||||
END_OBJECT_MAP()
|
||||
|
||||
class SampleClipAngleApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CAstJointsAS61App)
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
virtual int ExitInstance();
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
//{{AFX_MSG(CAstJointsAS61App)
|
||||
// NOTE - the ClassWizard will add and remove member functions here.
|
||||
// DO NOT EDIT what you see in these blocks of generated code !
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
BEGIN_MESSAGE_MAP(SampleClipAngleApp, CWinApp)
|
||||
//{{AFX_MSG_MAP(CAstJointsAS61App)
|
||||
// NOTE - the ClassWizard will add and remove mapping macros here.
|
||||
// DO NOT EDIT what you see in these blocks of generated code!
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
SampleClipAngleApp theApp;
|
||||
|
||||
BOOL SampleClipAngleApp::InitInstance()
|
||||
{
|
||||
AfxEnableControlContainer();
|
||||
_Module.Init(ObjectMap, m_hInstance, &LIBID_SampleClipJointLib);
|
||||
return CWinApp::InitInstance();
|
||||
}
|
||||
|
||||
|
||||
int SampleClipAngleApp::ExitInstance()
|
||||
{
|
||||
_Module.Term();
|
||||
return CWinApp::ExitInstance();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Used to determine whether the DLL can be unloaded by OLE
|
||||
|
||||
STDAPI DllCanUnloadNow(void)
|
||||
{
|
||||
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
||||
return (AfxDllCanUnloadNow() == S_OK && _Module.GetLockCount() == 0) ? S_OK : S_FALSE;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Returns a class factory to create an object of the requested type
|
||||
|
||||
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
|
||||
{
|
||||
return _Module.GetClassObject(rclsid, riid, ppv);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// DllRegisterServer - Adds entries to the system registry
|
||||
|
||||
STDAPI DllRegisterServer(void)
|
||||
{
|
||||
// registers object, typelib and all interfaces in typelib
|
||||
return _Module.RegisterServer(TRUE);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// DllUnregisterServer - Removes entries from the system registry
|
||||
|
||||
STDAPI DllUnregisterServer(void)
|
||||
{
|
||||
return _Module.UnregisterServer(TRUE);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,200 @@
|
||||
// NativeClipAnglePage.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "pch.h"
|
||||
#include "afxdialogex.h"
|
||||
#include "NativeClipAnglePage.h"
|
||||
|
||||
|
||||
// NativeClipAnglePage dialog
|
||||
CWnd* NativeClipAnglePage::m_pWnd = NULL;
|
||||
|
||||
IMPLEMENT_DYNAMIC(NativeClipAnglePage, CDialog)
|
||||
|
||||
NativeClipAnglePage::NativeClipAnglePage(CWnd* pParent /*=nullptr*/)
|
||||
: CDialog(IDD_CLIPANGLEDIALOG, pParent)
|
||||
{
|
||||
m_pCurRule = nullptr;
|
||||
m_bIsInitialising = true;
|
||||
}
|
||||
|
||||
NativeClipAnglePage::~NativeClipAnglePage()
|
||||
{
|
||||
if (m_pCurRule)
|
||||
{
|
||||
m_pCurRule->Release();
|
||||
m_pCurRule = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
NativeClipAnglePage::setJoint(SampleClipAngle* pVal)
|
||||
{
|
||||
if (m_pCurRule)
|
||||
{
|
||||
m_pCurRule->Release();
|
||||
m_pCurRule = NULL;
|
||||
}
|
||||
m_pCurRule = pVal;
|
||||
m_pCurRule->AddRef();
|
||||
//angle
|
||||
_bstr_t tmpClass(m_pCurRule->m_sProfType, TRUE); //avoid memory leaks
|
||||
_bstr_t tmpName(m_pCurRule->m_sProfSize, TRUE); //avoid memory leaks
|
||||
|
||||
m_Profile.SetCurrentProfileName(CString("AISC 15.0 Angle equal#@§@#L4X4X3/8").AllocSysString());
|
||||
m_Profile.SetUseFilterClass(TRUE);
|
||||
m_Profile.SetShowHideAllSections(TRUE);
|
||||
m_Profile.AppendAcceptedClassGroup(CString("W").AllocSysString());
|
||||
m_Profile.SetCurrentClass((LPCTSTR)tmpClass);
|
||||
m_Profile.SetCurrentSection((LPCTSTR)tmpName);
|
||||
|
||||
|
||||
_bstr_t boltsStd(m_pCurRule->m_sBoltsStandard, true);
|
||||
_bstr_t boltsMat(m_pCurRule->m_sBoltsMaterial, true);
|
||||
_bstr_t boltSet(m_pCurRule->m_sBoltsSet, true);
|
||||
|
||||
m_Bolts.SetBoltStandard((LPCTSTR)boltsStd);
|
||||
m_Bolts.SetBoltMaterial((LPCTSTR)boltsMat);
|
||||
m_Bolts.SetBoltSet((LPCTSTR)boltSet);
|
||||
m_Bolts.SetBoltDiameter(m_pCurRule->m_dBoltsDiameter);
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
||||
m_bIsInitialising = false;
|
||||
}
|
||||
|
||||
|
||||
void NativeClipAnglePage::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_ASTPROFILECONTROL1, m_Profile);
|
||||
DDX_Control(pDX, IDC_BOLTSTANDARDSCTRL1, m_Bolts);
|
||||
}
|
||||
|
||||
CWnd*
|
||||
NativeClipAnglePage::GetParentWindow()
|
||||
{
|
||||
if (m_pWnd == nullptr)
|
||||
{
|
||||
// Restore the module state from the main executable, in order to access the main hwnd
|
||||
AFX_MODULE_STATE* appModuleState = AfxGetAppModuleState();
|
||||
|
||||
// Get the current module state
|
||||
AFX_MODULE_STATE* currModuleState = AfxGetModuleState();
|
||||
|
||||
// Switch the module state
|
||||
AfxSetModuleState(appModuleState);
|
||||
|
||||
m_pWnd = AfxGetMainWnd();
|
||||
if (m_pWnd == nullptr)
|
||||
{
|
||||
try
|
||||
{
|
||||
CWinApp* pApp = AfxGetApp();
|
||||
if (pApp)
|
||||
{
|
||||
m_pWnd = pApp->GetMainWnd();
|
||||
if (m_pWnd == nullptr)
|
||||
{
|
||||
m_pWnd = (CFrameWnd*)pApp->m_pMainWnd;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Switch back the module state
|
||||
AfxSetModuleState(currModuleState);
|
||||
}
|
||||
return m_pWnd;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
NativeClipAnglePage::OnProfileChanged()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
if (!m_bIsInitialising && m_pCurRule)
|
||||
{
|
||||
UpdateData(TRUE);
|
||||
IJointPtr curJoint;
|
||||
m_pCurRule->get_Joint(&curJoint);
|
||||
|
||||
if (m_Profile.GetEnabled() == FALSE)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_bstr_t tempClassJoint(m_pCurRule->m_sProfType, TRUE);
|
||||
_bstr_t tempNameJoint(m_pCurRule->m_sProfSize, TRUE);
|
||||
|
||||
_bstr_t tempClassDialog(m_Profile.GetCurrentClass().AllocSysString(), TRUE);
|
||||
_bstr_t tempNameDialog(m_Profile.GetCurrentSection().AllocSysString(), TRUE);
|
||||
|
||||
if (tempClassJoint != tempClassDialog ||
|
||||
tempNameJoint != tempNameDialog)
|
||||
{
|
||||
CString currentClass = m_Profile.GetCurrentClass();
|
||||
CString currentSection = m_Profile.GetCurrentSection();
|
||||
|
||||
m_pCurRule->m_sProfType = currentClass.AllocSysString();
|
||||
m_pCurRule->m_sProfSize = currentSection.AllocSysString();
|
||||
|
||||
//setGrayedVals();
|
||||
|
||||
curJoint->SaveData(m_pCurRule);
|
||||
curJoint->UpdateDrivenConstruction();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
NativeClipAnglePage::OnBoltsChanged()
|
||||
{
|
||||
if (!m_bIsInitialising && m_pCurRule)
|
||||
{
|
||||
UpdateData(TRUE);
|
||||
IJointPtr curJoint;
|
||||
m_pCurRule->get_Joint(&curJoint);
|
||||
|
||||
bool bRet = false;
|
||||
|
||||
double tempValueDiameter = m_Bolts.GetBoltDiameter();
|
||||
_bstr_t tempValueGrade((m_Bolts.GetBoltMaterial()).AllocSysString(), TRUE);
|
||||
_bstr_t tempValueAssembly((m_Bolts.GetBoltSet()).AllocSysString(), TRUE);
|
||||
_bstr_t tempValueType((m_Bolts.GetBoltStandard()).AllocSysString(), TRUE);
|
||||
|
||||
_bstr_t jointGrade(m_pCurRule->m_sBoltsMaterial, TRUE);
|
||||
_bstr_t jointAssembly(m_pCurRule->m_sBoltsSet, TRUE);
|
||||
_bstr_t jointType(m_pCurRule->m_sBoltsStandard, TRUE);
|
||||
|
||||
if ((tempValueDiameter != m_pCurRule->m_dBoltsDiameter) ||
|
||||
(tempValueGrade != jointGrade) ||
|
||||
(tempValueAssembly != jointAssembly) ||
|
||||
(tempValueType != jointType))
|
||||
{
|
||||
m_pCurRule->m_dBoltsDiameter = tempValueDiameter;
|
||||
m_pCurRule->m_sBoltsMaterial = CString(tempValueGrade.GetBSTR()).AllocSysString();
|
||||
m_pCurRule->m_sBoltsSet = CString(tempValueAssembly.GetBSTR()).AllocSysString();
|
||||
m_pCurRule->m_sBoltsStandard = CString(tempValueType.GetBSTR()).AllocSysString();
|
||||
curJoint->SaveData(m_pCurRule);
|
||||
curJoint->UpdateDrivenConstruction();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(NativeClipAnglePage, CDialog)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// NativeClipAnglePage message handlers
|
||||
BEGIN_EVENTSINK_MAP(NativeClipAnglePage, CDialog)
|
||||
//{{AFX_EVENTSINK_MAP(CUSClipAngle_Page1)
|
||||
ON_EVENT(NativeClipAnglePage, IDC_ASTPROFILECONTROL1, 20 /* ProfileChanged */, OnProfileChanged, VTS_NONE)
|
||||
ON_EVENT(NativeClipAnglePage, IDC_BOLTSTANDARDSCTRL1, 5 /* ProfileChanged */, OnBoltsChanged, VTS_NONE)
|
||||
END_EVENTSINK_MAP()
|
||||
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
#include "afxdialogex.h"
|
||||
#include "astprofilecontrol.h"
|
||||
#include "boltstandards.h"
|
||||
|
||||
// NativeClipAnglePage dialog
|
||||
|
||||
class NativeClipAnglePage : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(NativeClipAnglePage)
|
||||
private:
|
||||
SampleClipAngle* m_pCurRule;
|
||||
static CWnd* m_pWnd;
|
||||
CAstProfileControl m_Profile;
|
||||
CBoltStandards m_Bolts;
|
||||
bool m_bIsInitialising;
|
||||
|
||||
public:
|
||||
NativeClipAnglePage(CWnd* pParent = nullptr); // standard constructor
|
||||
virtual ~NativeClipAnglePage();
|
||||
|
||||
void setJoint(SampleClipAngle* pVal);
|
||||
|
||||
static CWnd* GetParentWindow();
|
||||
|
||||
// Dialog Data
|
||||
//#ifdef AFX_DESIGN_TIME
|
||||
enum { IDD = IDD_CLIPANGLEDIALOG};
|
||||
//#endif
|
||||
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
|
||||
afx_msg void OnProfileChanged();
|
||||
afx_msg void OnBoltsChanged();
|
||||
DECLARE_EVENTSINK_MAP()
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
@@ -0,0 +1,6 @@
|
||||
; SampleClipAngle.def : Declares the module parameters.
|
||||
EXPORTS
|
||||
DllCanUnloadNow PRIVATE
|
||||
DllGetClassObject PRIVATE
|
||||
DllRegisterServer PRIVATE
|
||||
DllUnregisterServer PRIVATE
|
||||
@@ -0,0 +1,145 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "winres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (United States) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""winres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"1 TYPELIB ""SampleClipAngleNative.tlb""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_CLIPANGLEDIALOG DIALOGEX 0, 0, 528, 219
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "",IDC_BOLTSTANDARDSCTRL1,
|
||||
"{0C4B9CAC-B571-4906-B006-06FC98473734}",WS_TABSTOP,59,32,148,60
|
||||
CONTROL "",IDC_ASTPROFILECONTROL1,
|
||||
"{574D51EF-85F9-415C-81CE-5A0FC45B1F79}",WS_TABSTOP,59,10,149,14
|
||||
LTEXT "Cleat profile",IDC_STATIC,12,10,47,8
|
||||
LTEXT "Bolt Diameter",IDC_STATIC,12,32,47,8
|
||||
LTEXT "Bolt Type",IDC_STATIC,12,47,47,8
|
||||
LTEXT "Bolt Grade",IDC_STATIC,12,62,47,8
|
||||
LTEXT "Bolt Assembly",IDC_STATIC,12,77,47,8
|
||||
CONTROL "",IDC_ASTBITMAPCONTROL1,
|
||||
"{916DA9C4-75E2-46C6-A41F-E1522ECCF871}",WS_TABSTOP,212,10,92,65
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_CLIPANGLEDIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 6
|
||||
RIGHTMARGIN, 521
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 212
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog Info
|
||||
//
|
||||
|
||||
IDD_CLIPANGLEDIALOG DLGINIT
|
||||
BEGIN
|
||||
IDC_BOLTSTANDARDSCTRL1, 0x376, 64, 0
|
||||
0x0000, 0x0000, 0x0003, 0x0001, 0x16f2, 0x0000, 0x0a21, 0x0000, 0x0044,
|
||||
0x0000, 0x01ff, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
|
||||
0xffff, 0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfeff,
|
||||
0x00ff, 0xfeff, 0x00ff, 0xfeff, 0x00ff,
|
||||
IDC_ASTPROFILECONTROL1, 0x376, 191, 0
|
||||
0x0000, 0x0000, 0x0003, 0x0001, 0x1727, 0x0000, 0x0261, 0x0000, 0x0044,
|
||||
0x0000, 0x01ff, 0xff00, 0xfffe, 0x4122, 0x4900, 0x5300, 0x4300, 0x2000,
|
||||
0x3100, 0x3500, 0x2e00, 0x3000, 0x2000, 0x4100, 0x6e00, 0x6700, 0x6c00,
|
||||
0x6500, 0x2000, 0x6500, 0x7100, 0x7500, 0x6100, 0x6c00, 0x2300, 0x4000,
|
||||
0xa700, 0x4000, 0x2300, 0x4c00, 0x3400, 0x5800, 0x3400, 0x5800, 0x3300,
|
||||
0x2f00, 0x3800, 0xff00, 0xfffe, 0x4115, 0x4900, 0x5300, 0x4300, 0x2000,
|
||||
0x3100, 0x3500, 0x2e00, 0x3000, 0x2000, 0x4100, 0x6e00, 0x6700, 0x6c00,
|
||||
0x6500, 0x2000, 0x6500, 0x7100, 0x7500, 0x6100, 0x6c00, 0xff00, 0xfffe,
|
||||
0x4c08, 0x3400, 0x5800, 0x3400, 0x5800, 0x3300, 0x2f00, 0x3800, 0x0000,
|
||||
0x0065, 0x0000, 0x0066, 0x0000, 0x0068, 0x0000, 0xff00, 0xffff, 0x00ff,
|
||||
0x1e00, 0x0000, 0x0000, 0x0000, 0x0000, "\000"
|
||||
IDC_ASTBITMAPCONTROL1, 0x376, 25, 0
|
||||
0x0000, 0x0000, 0x0003, 0x0001, 0x0e43, 0x0000, 0x0af5, 0x0000, 0x0040,
|
||||
0x0000, 0x5701, 0x00eb, "\000"
|
||||
0
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// AFX_DIALOG_LAYOUT
|
||||
//
|
||||
|
||||
IDD_CLIPANGLEDIALOG AFX_DIALOG_LAYOUT
|
||||
BEGIN
|
||||
0
|
||||
END
|
||||
|
||||
#endif // English (United States) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
1 TYPELIB "SampleClipAngleNative.tlb"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import "oaidl.idl";
|
||||
import "ocidl.idl";
|
||||
[
|
||||
object,
|
||||
uuid(4F30D30D-2821-4933-AFC3-64AB5CCA2AE2),
|
||||
dual,
|
||||
helpstring("ISampleClipAngle Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface ISampleClipAngle : IDispatch
|
||||
{
|
||||
};
|
||||
|
||||
[
|
||||
uuid(10B7FC2F-C086-4F40-8ECA-5109479299A0),
|
||||
version(1.0),
|
||||
helpstring("SampleClipAngle 1.0 Type Library")
|
||||
]
|
||||
library SampleClipJointLib
|
||||
{
|
||||
importlib("stdole32.tlb");
|
||||
importlib("stdole2.tlb");
|
||||
[
|
||||
uuid(FD62E6AB-0412-4F2B-9DB8-C5D5385F8042),
|
||||
helpstring("USClipAngle Class")
|
||||
]
|
||||
coclass SampleClipAngle
|
||||
{
|
||||
[default] interface ISampleClipAngle;
|
||||
};
|
||||
};
|
||||
+259
@@ -0,0 +1,259 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\StructuralConnectionsSDKSamples.Common.props" />
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{42debbf6-6fa4-4fec-97a4-c6a0c994a4fc}</ProjectGuid>
|
||||
<RootNamespace>SampleClipAngleC</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>SampleClipAngleNative</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<UseOfMfc>Dynamic</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>..\..\Binaries\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>..\..\Binaries\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>..\..\Binaries\</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>..\..\Binaries\</OutDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;SAMPLECLIPANGLEC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<AdditionalIncludeDirectories>$(ASInstallDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<ModuleDefinitionFile>SampleClipAngle.def</ModuleDefinitionFile>
|
||||
</Link>
|
||||
<Midl>
|
||||
<HeaderFileName>$(ProjectName)_h.h</HeaderFileName>
|
||||
<InterfaceIdentifierFileName>$(ProjectName)_i.c</InterfaceIdentifierFileName>
|
||||
<ProxyFileName>$(ProjectName)_p.c</ProxyFileName>
|
||||
<TypeLibraryName>$(ProjectName).tlb</TypeLibraryName>
|
||||
</Midl>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;SAMPLECLIPANGLEC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<AdditionalIncludeDirectories>$(ASInstallDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<ModuleDefinitionFile>SampleClipAngle.def</ModuleDefinitionFile>
|
||||
</Link>
|
||||
<Midl>
|
||||
<HeaderFileName>$(ProjectName)_h.h</HeaderFileName>
|
||||
<InterfaceIdentifierFileName>$(ProjectName)_i.c</InterfaceIdentifierFileName>
|
||||
<ProxyFileName>$(ProjectName)_p.c</ProxyFileName>
|
||||
<TypeLibraryName>$(ProjectName).tlb</TypeLibraryName>
|
||||
</Midl>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;SAMPLECLIPANGLEC_EXPORTS;_WINDOWS;_USRDLL;_AFXDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<AdditionalIncludeDirectories>$(ASInstallDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<ModuleDefinitionFile>SampleClipAngle.def</ModuleDefinitionFile>
|
||||
</Link>
|
||||
<Midl>
|
||||
<OutputDirectory>
|
||||
</OutputDirectory>
|
||||
</Midl>
|
||||
<Midl>
|
||||
<HeaderFileName>$(ProjectName)_h.h</HeaderFileName>
|
||||
</Midl>
|
||||
<Midl>
|
||||
<InterfaceIdentifierFileName>$(ProjectName)_i.c</InterfaceIdentifierFileName>
|
||||
</Midl>
|
||||
<Midl>
|
||||
<ProxyFileName>$(ProjectName)_p.c</ProxyFileName>
|
||||
<TypeLibraryName>$(ProjectName).tlb</TypeLibraryName>
|
||||
</Midl>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;SAMPLECLIPANGLEC_EXPORTS;_WINDOWS;_USRDLL;_AFXDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<AdditionalIncludeDirectories>$(ASInstallDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<ModuleDefinitionFile>SampleClipAngle.def</ModuleDefinitionFile>
|
||||
</Link>
|
||||
<Midl>
|
||||
<HeaderFileName>$(ProjectName)_h.h</HeaderFileName>
|
||||
<InterfaceIdentifierFileName>$(ProjectName)_i.c</InterfaceIdentifierFileName>
|
||||
<ProxyFileName>$(ProjectName)_p.c</ProxyFileName>
|
||||
<TypeLibraryName>$(ProjectName).tlb</TypeLibraryName>
|
||||
</Midl>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="astbitmapcontrol.h" />
|
||||
<ClInclude Include="astcheckboxcontrol.h" />
|
||||
<ClInclude Include="astcombotablecontrol.h" />
|
||||
<ClInclude Include="astgratingcontrol.h" />
|
||||
<ClInclude Include="astmodelrolecontrol.h" />
|
||||
<ClInclude Include="astocxgrid.h" />
|
||||
<ClInclude Include="astprofilecontrol.h" />
|
||||
<ClInclude Include="aststaticprompt.h" />
|
||||
<ClInclude Include="aststatictextcontrol.h" />
|
||||
<ClInclude Include="astunitcontrol.h" />
|
||||
<ClInclude Include="astweldcontrol.h" />
|
||||
<ClInclude Include="boltstandards.h" />
|
||||
<ClInclude Include="ClipAngle.h" />
|
||||
<ClInclude Include="font.h" />
|
||||
<ClInclude Include="framework.h" />
|
||||
<ClInclude Include="NativeClipAnglePage.h" />
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="resource.h" />
|
||||
<ClInclude Include="unitsmanager.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="astbitmapcontrol.cpp" />
|
||||
<ClCompile Include="astcheckboxcontrol.cpp" />
|
||||
<ClCompile Include="astcombotablecontrol.cpp" />
|
||||
<ClCompile Include="astgratingcontrol.cpp" />
|
||||
<ClCompile Include="astmodelrolecontrol.cpp" />
|
||||
<ClCompile Include="astocxgrid.cpp" />
|
||||
<ClCompile Include="astprofilecontrol.cpp" />
|
||||
<ClCompile Include="aststaticprompt.cpp" />
|
||||
<ClCompile Include="aststatictextcontrol.cpp" />
|
||||
<ClCompile Include="astunitcontrol.cpp" />
|
||||
<ClCompile Include="astweldcontrol.cpp" />
|
||||
<ClCompile Include="boltstandards.cpp" />
|
||||
<ClCompile Include="ClipAngle.cpp" />
|
||||
<ClCompile Include="ClipAngleApp.cpp" />
|
||||
<ClCompile Include="font.cpp" />
|
||||
<ClCompile Include="NativeClipAnglePage.cpp" />
|
||||
<ClCompile Include="pch.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="unitsmanager.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Midl Include="SampleClipAngleNative.idl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ClipAngle.rgs" />
|
||||
<None Include="SampleClipAngle.def" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="SampleClipAngle.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
+150
@@ -0,0 +1,150 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="framework.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ClipAngle.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="resource.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="NativeClipAnglePage.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="astprofilecontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="boltstandards.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="unitsmanager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="astweldcontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="astunitcontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="aststatictextcontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="aststaticprompt.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="astbitmapcontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="astcheckboxcontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="astcombotablecontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="astgratingcontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="astocxgrid.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="astmodelrolecontrol.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="font.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="pch.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ClipAngle.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ClipAngleApp.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="NativeClipAnglePage.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="astprofilecontrol.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="boltstandards.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="astcombotablecontrol.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="unitsmanager.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="astweldcontrol.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="astunitcontrol.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="aststatictextcontrol.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="aststaticprompt.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="astmodelrolecontrol.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="astocxgrid.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="astgratingcontrol.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="astbitmapcontrol.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="astcheckboxcontrol.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="font.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Midl Include="SampleClipAngleNative.idl">
|
||||
<Filter>Source Files</Filter>
|
||||
</Midl>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ClipAngle.rgs">
|
||||
<Filter>Resource Files</Filter>
|
||||
</None>
|
||||
<None Include="SampleClipAngle.def">
|
||||
<Filter>Source Files</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="SampleClipAngle.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,41 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
#include "pch.h"
|
||||
#include "astbitmapcontrol.h"
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstBitmapControl
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstBitmapControl, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstBitmapControl properties
|
||||
|
||||
long CAstBitmapControl::GetKey()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x1, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstBitmapControl::SetKey(long propVal)
|
||||
{
|
||||
SetProperty(0x1, VT_I4, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstBitmapControl::GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstBitmapControl::SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstBitmapControl operations
|
||||
@@ -0,0 +1,53 @@
|
||||
#if !defined(AFX_ASTBITMAPCONTROL_H__E09120E3_6AA7_4764_8EC4_A794AAE392AE__INCLUDED_)
|
||||
#define AFX_ASTBITMAPCONTROL_H__E09120E3_6AA7_4764_8EC4_A794AAE392AE__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstBitmapControl wrapper class
|
||||
|
||||
class CAstBitmapControl : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstBitmapControl)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0x916da9c4, 0x75e2, 0x46c6, { 0xa4, 0x1f, 0xe1, 0x52, 0x2e, 0xcc, 0xf8, 0x71 } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName,
|
||||
LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect,
|
||||
CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey); }
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
long GetKey();
|
||||
void SetKey(long);
|
||||
BOOL GetEnabled();
|
||||
void SetEnabled(BOOL);
|
||||
|
||||
// Operations
|
||||
public:
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_ASTBITMAPCONTROL_H__E09120E3_6AA7_4764_8EC4_A794AAE392AE__INCLUDED_)
|
||||
@@ -0,0 +1,55 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "astcheckboxcontrol.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstCheckBoxControl
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstCheckBoxControl, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstCheckBoxControl properties
|
||||
|
||||
long CAstCheckBoxControl::GetCaptionKey()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x1, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstCheckBoxControl::SetCaptionKey(long propVal)
|
||||
{
|
||||
SetProperty(0x1, VT_I4, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstCheckBoxControl::GetValue()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x2, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstCheckBoxControl::SetValue(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x2, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstCheckBoxControl::GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstCheckBoxControl::SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstCheckBoxControl operations
|
||||
@@ -0,0 +1,55 @@
|
||||
#if !defined(AFX_ASTCHECKBOXCONTROL_H__3DE7A33E_C3ED_419E_B57F_46CA43CD67B9__INCLUDED_)
|
||||
#define AFX_ASTCHECKBOXCONTROL_H__3DE7A33E_C3ED_419E_B57F_46CA43CD67B9__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstCheckBoxControl wrapper class
|
||||
|
||||
class CAstCheckBoxControl : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstCheckBoxControl)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0x17d55625, 0x30d6, 0x421f, { 0x8a, 0x3f, 0x85, 0xc6, 0x15, 0xff, 0xa9, 0x3c } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName,
|
||||
LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect,
|
||||
CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey); }
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
long GetCaptionKey();
|
||||
void SetCaptionKey(long);
|
||||
BOOL GetValue();
|
||||
void SetValue(BOOL);
|
||||
BOOL GetEnabled();
|
||||
void SetEnabled(BOOL);
|
||||
|
||||
// Operations
|
||||
public:
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_ASTCHECKBOXCONTROL_H__3DE7A33E_C3ED_419E_B57F_46CA43CD67B9__INCLUDED_)
|
||||
@@ -0,0 +1,149 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "astcombotablecontrol.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstComboTableControl
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstComboTableControl, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstComboTableControl properties
|
||||
|
||||
CString CAstComboTableControl::GetTableName()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x1, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetTableName(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x1, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetDSNTableName(CString strDSN)
|
||||
{
|
||||
CString strDSNTableName = GetTableName();
|
||||
if (!strDSNTableName.IsEmpty() && strDSNTableName.Find(_T("."))==-1)
|
||||
{
|
||||
strDSNTableName = CString(strDSN) + CString(L".") + strDSNTableName;
|
||||
}
|
||||
SetProperty(0x1, VT_BSTR, strDSNTableName.GetString());
|
||||
}
|
||||
|
||||
long CAstComboTableControl::GetComboIndex()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x2, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetComboIndex(long propVal)
|
||||
{
|
||||
SetProperty(0x2, VT_I4, propVal);
|
||||
}
|
||||
|
||||
CString CAstComboTableControl::GetComboCaption()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x3, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetComboCaption(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x3, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
long CAstComboTableControl::GetLabelLength()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x4, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetLabelLength(long propVal)
|
||||
{
|
||||
SetProperty(0x4, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstComboTableControl::GetLabelKey()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x5, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetLabelKey(long propVal)
|
||||
{
|
||||
SetProperty(0x5, VT_I4, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstComboTableControl::GetSort()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x6, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetSort(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x6, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstComboTableControl::GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
long CAstComboTableControl::GetLongKey()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x7, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetLongKey(long propVal)
|
||||
{
|
||||
SetProperty(0x7, VT_I4, propVal);
|
||||
}
|
||||
|
||||
double CAstComboTableControl::GetDoubleKey()
|
||||
{
|
||||
double result;
|
||||
GetProperty(0x8, VT_R8, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetDoubleKey(double propVal)
|
||||
{
|
||||
SetProperty(0x8, VT_R8, propVal);
|
||||
}
|
||||
|
||||
CString CAstComboTableControl::GetStringKey()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x9, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstComboTableControl::SetStringKey(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x9, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstComboTableControl operations
|
||||
@@ -0,0 +1,70 @@
|
||||
#if !defined(AFX_ASTCOMBOTABLECONTROL_H__F0089DE6_AC5E_4C13_A7BD_EBCAF601FDB0__INCLUDED_)
|
||||
#define AFX_ASTCOMBOTABLECONTROL_H__F0089DE6_AC5E_4C13_A7BD_EBCAF601FDB0__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstComboTableControl wrapper class
|
||||
|
||||
class CAstComboTableControl : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstComboTableControl)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0xfeaa9dcf, 0x65c5, 0x4650, { 0xb5, 0xcb, 0xb1, 0xa9, 0x14, 0xb6, 0x19, 0xfe } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName,
|
||||
LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect,
|
||||
CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey); }
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
CString GetTableName();
|
||||
void SetTableName(LPCTSTR);
|
||||
void SetDSNTableName(CString);
|
||||
long GetComboIndex();
|
||||
void SetComboIndex(long);
|
||||
CString GetComboCaption();
|
||||
void SetComboCaption(LPCTSTR);
|
||||
long GetLabelLength();
|
||||
void SetLabelLength(long);
|
||||
long GetLabelKey();
|
||||
void SetLabelKey(long);
|
||||
BOOL GetSort();
|
||||
void SetSort(BOOL);
|
||||
BOOL GetEnabled();
|
||||
void SetEnabled(BOOL);
|
||||
long GetLongKey();
|
||||
void SetLongKey(long);
|
||||
double GetDoubleKey();
|
||||
void SetDoubleKey(double);
|
||||
CString GetStringKey();
|
||||
void SetStringKey(LPCTSTR);
|
||||
|
||||
// Operations
|
||||
public:
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_ASTCOMBOTABLECONTROL_H__F0089DE6_AC5E_4C13_A7BD_EBCAF601FDB0__INCLUDED_)
|
||||
@@ -0,0 +1,203 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "astgratingcontrol.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstGratingControl
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstGratingControl, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstGratingControl properties
|
||||
|
||||
CString CAstGratingControl::GetCurrentSize()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x6, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetCurrentSize(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x6, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
CString CAstGratingControl::GetCurrentClass()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x7, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetCurrentClass(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x7, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
long CAstGratingControl::GetGratingType()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x8, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetGratingType(long propVal)
|
||||
{
|
||||
SetProperty(0x8, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstGratingControl::GetShowGratingTypeCombo()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x9, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetShowGratingTypeCombo(long propVal)
|
||||
{
|
||||
SetProperty(0x9, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstGratingControl::GetLabelLengthAll()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0xa, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetLabelLengthAll(long propVal)
|
||||
{
|
||||
SetProperty(0xa, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstGratingControl::GetSummaryRepresentation()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0xb, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetSummaryRepresentation(long propVal)
|
||||
{
|
||||
SetProperty(0xb, VT_I4, propVal);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstGratingControl operations
|
||||
|
||||
long CAstGratingControl::GetLabelDBKey(long ctrl)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x2, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
|
||||
ctrl);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetLabelDBKey(long ctrl, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x3, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
ctrl, nNewValue);
|
||||
}
|
||||
|
||||
long CAstGratingControl::GetLabelLength(long ctrl)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x4, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
|
||||
ctrl);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetLabelLength(long ctrl, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x5, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
ctrl, nNewValue);
|
||||
}
|
||||
|
||||
BOOL CAstGratingControl::GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
|
||||
BOOL CAstGratingControl::GetAppearance()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0xc, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetAppearance(BOOL propVal)
|
||||
{
|
||||
SetProperty(0xc, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
long CAstGratingControl::GetDropHeight()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0xd, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetDropHeight(long propVal)
|
||||
{
|
||||
SetProperty(0xd, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstGratingControl::GetDropWidth()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0xe, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetDropWidth(long propVal)
|
||||
{
|
||||
SetProperty(0xe, VT_I4, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstGratingControl::GetSummaryDroppedDown()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0xf, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetSummaryDroppedDown(BOOL propVal)
|
||||
{
|
||||
SetProperty(0xf, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
CString CAstGratingControl::GetGridCellDisplayName()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x10, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstGratingControl::SetGridCellDisplayName(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x10, VT_BSTR, propVal);
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
#if !defined(AFX_ASTGRATINGCONTROL_H__3171B533_EE2B_4609_A8DD_E9ADD3AFAE37__INCLUDED_)
|
||||
#define AFX_ASTGRATINGCONTROL_H__3171B533_EE2B_4609_A8DD_E9ADD3AFAE37__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstGratingControl wrapper class
|
||||
|
||||
class CAstGratingControl : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstGratingControl)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0xccddd738, 0x9cda, 0x4677, { 0x88, 0x85, 0x5, 0x7f, 0x2, 0x56, 0xf6, 0x1c } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName,
|
||||
LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect,
|
||||
CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey); }
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
CString GetCurrentSize();
|
||||
void SetCurrentSize(LPCTSTR);
|
||||
CString GetCurrentClass();
|
||||
void SetCurrentClass(LPCTSTR);
|
||||
long GetGratingType();
|
||||
void SetGratingType(long);
|
||||
long GetShowGratingTypeCombo();
|
||||
void SetShowGratingTypeCombo(long);
|
||||
long GetLabelLengthAll();
|
||||
void SetLabelLengthAll(long);
|
||||
BOOL GetEnabled();
|
||||
void SetEnabled(BOOL);
|
||||
long GetSummaryRepresentation();
|
||||
void SetSummaryRepresentation(long);
|
||||
BOOL GetAppearance();
|
||||
void SetAppearance(BOOL);
|
||||
long GetDropHeight();
|
||||
void SetDropHeight(long);
|
||||
long GetDropWidth();
|
||||
void SetDropWidth(long);
|
||||
BOOL GetSummaryDroppedDown();
|
||||
void SetSummaryDroppedDown(BOOL);
|
||||
CString GetGridCellDisplayName();
|
||||
void SetGridCellDisplayName(LPCTSTR);
|
||||
// property 'Enabled' not emitted because of invalid type
|
||||
|
||||
// Operations
|
||||
public:
|
||||
long GetLabelDBKey(long ctrl);
|
||||
void SetLabelDBKey(long ctrl, long nNewValue);
|
||||
long GetLabelLength(long ctrl);
|
||||
void SetLabelLength(long ctrl, long nNewValue);
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_ASTGRATINGCONTROL_H__3171B533_EE2B_4609_A8DD_E9ADD3AFAE37__INCLUDED_)
|
||||
@@ -0,0 +1,19 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "astmodelrolecontrol.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstmodelrolecontrol
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstModelRoleControl, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstmodelrolecontrol properties
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstmodelrolecontrol operations
|
||||
@@ -0,0 +1,153 @@
|
||||
#pragma once
|
||||
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstmodelrolecontrol wrapper class
|
||||
|
||||
class CAstModelRoleControl : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstModelRoleControl)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0xEECAC4EE, 0xAA4C, 0x471C, { 0xAD, 0xA, 0xC1, 0x55, 0x7E, 0xB8, 0x28, 0xDC } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{
|
||||
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
|
||||
}
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
|
||||
UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{
|
||||
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey);
|
||||
}
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
enum
|
||||
{
|
||||
kEditBox = 0,
|
||||
kListBox = 1,
|
||||
kComboBox = 2,
|
||||
kCheckBox = 3,
|
||||
kProfileEdit = 4,
|
||||
kButton = 5
|
||||
}eColumnType;
|
||||
enum
|
||||
{
|
||||
kUnits = 0,
|
||||
kDouble = 1,
|
||||
kInteger = 2,
|
||||
kString = 3
|
||||
}eColumnDataType;
|
||||
enum
|
||||
{
|
||||
kUnitDistance = 0,
|
||||
kUnitAngle = 1,
|
||||
kUnitWeight = 2,
|
||||
kUnitDistanceGUI = 3,
|
||||
kUnitArea = 4,
|
||||
kUnitVolume = 5,
|
||||
kUnitForce = 6,
|
||||
kUnitMoment = 7
|
||||
}eColumnUnitType;
|
||||
enum
|
||||
{
|
||||
kBeam = 1,
|
||||
kPlate = 2
|
||||
}eGroupingRole;
|
||||
enum
|
||||
{
|
||||
kGratingStandard = 0,
|
||||
kGratingVariable = 1
|
||||
}eGratingType;
|
||||
enum
|
||||
{
|
||||
kType = 0,
|
||||
kClass = 1,
|
||||
kSize = 2
|
||||
}eGratingControls;
|
||||
enum
|
||||
{
|
||||
kNull = 0,
|
||||
kAnglePage = 1,
|
||||
kAreaPage = 2,
|
||||
kWeightPage = 4,
|
||||
kLengthPage = 8,
|
||||
kWeightPerDistancePage = 16,
|
||||
kAllPages = 255
|
||||
}eFirstPage;
|
||||
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// _DAstModelRoleControl
|
||||
|
||||
// Functions
|
||||
//
|
||||
|
||||
void SelectItemByKey(LPCTSTR Key)
|
||||
{
|
||||
static BYTE parms[] = VTS_BSTR ;
|
||||
InvokeHelper(0x4, DISPATCH_METHOD, VT_EMPTY, NULL, parms, Key);
|
||||
}
|
||||
CString getSelectedItemKey()
|
||||
{
|
||||
CString result;
|
||||
InvokeHelper(0x5, DISPATCH_METHOD, VT_BSTR, (void*)&result, NULL);
|
||||
return result;
|
||||
}
|
||||
void SetObjectType(long objectType)
|
||||
{
|
||||
static BYTE parms[] = VTS_I4 ;
|
||||
InvokeHelper(0x6, DISPATCH_METHOD, VT_EMPTY, NULL, parms, objectType);
|
||||
}
|
||||
|
||||
// Properties
|
||||
//
|
||||
|
||||
long GetLabelDbKey()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x2, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelDbKey(long propVal)
|
||||
{
|
||||
SetProperty(0x2, VT_I4, propVal);
|
||||
}
|
||||
long GetLabelLength()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x3, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelLength(long propVal)
|
||||
{
|
||||
SetProperty(0x3, VT_I4, propVal);
|
||||
}
|
||||
BOOL GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
@@ -0,0 +1,578 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "astocxgrid.h"
|
||||
#include "unitsmanager.h"
|
||||
// Dispatch interfaces referenced by this interface
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstOCXGrid
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstOCXGrid, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstOCXGrid properties
|
||||
|
||||
long CAstOCXGrid::GetColumnCount()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x1, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetColumnCount(long propVal)
|
||||
{
|
||||
SetProperty(0x1, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetRowCount()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x2, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetRowCount(long propVal)
|
||||
{
|
||||
SetProperty(0x2, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetFixedRowCount()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x3, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetFixedRowCount(long propVal)
|
||||
{
|
||||
SetProperty(0x3, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetFixedColumnCount()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x4, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetFixedColumnCount(long propVal)
|
||||
{
|
||||
SetProperty(0x4, VT_I4, propVal);
|
||||
}
|
||||
|
||||
CUnitsManager CAstOCXGrid::GetUnits()
|
||||
{
|
||||
LPDISPATCH pDispatch;
|
||||
GetProperty(0x5, VT_DISPATCH, (void*)&pDispatch);
|
||||
return CUnitsManager(pDispatch);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetUnits(LPDISPATCH propVal)
|
||||
{
|
||||
SetProperty(0x5, VT_DISPATCH, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstOCXGrid::GetHeaderSort()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x6, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetHeaderSort(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x6, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstOCXGrid::GetListMode()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x7, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetListMode(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x7, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstOCXGrid operations
|
||||
|
||||
long CAstOCXGrid::GetRowHeight(long nRow)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x8, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nRow);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetRowHeight(long nRow, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x8, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nRow, nNewValue);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetColumnWidth(long nColumn)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x9, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nColumn);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetColumnWidth(long nColumn, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x9, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nColumn, nNewValue);
|
||||
}
|
||||
|
||||
unsigned long CAstOCXGrid::GetCellBkColor(long nRow, long nCol)
|
||||
{
|
||||
unsigned long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0xa, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetCellBkColor(long nRow, long nCol, unsigned long newValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_I4;
|
||||
InvokeHelper(0xa, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nRow, nCol, newValue);
|
||||
}
|
||||
|
||||
unsigned long CAstOCXGrid::GetCellFgColor(long nRow, long nCol)
|
||||
{
|
||||
unsigned long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0xb, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetCellFgColor(long nRow, long nCol, unsigned long newValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_I4;
|
||||
InvokeHelper(0xb, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nRow, nCol, newValue);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetColumnType(long nCol)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0xc, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetColumnType(long nCol, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0xc, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nCol, nNewValue);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetColumnDataType(long nCol)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetColumnDataType(long nCol, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0xd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nCol, nNewValue);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetColumnUnits(long nCol)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0xe, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetColumnUnits(long nCol, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0xe, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nCol, nNewValue);
|
||||
}
|
||||
|
||||
double CAstOCXGrid::GetItemDoubleValue(long nRow, long nCol)
|
||||
{
|
||||
double result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0xf, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetItemDoubleValue(long nRow, long nCol, double newValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_R8;
|
||||
InvokeHelper(0xf, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nRow, nCol, newValue);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetItemIntegerValue(long nRow, long nCol)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x10, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetItemIntegerValue(long nRow, long nCol, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x10, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nRow, nCol, nNewValue);
|
||||
}
|
||||
|
||||
CString CAstOCXGrid::GetItemTextValue(long nRow, long nCol)
|
||||
{
|
||||
CString result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x11, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetItemTextValue(long nRow, long nCol, LPCTSTR lpszNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_BSTR;
|
||||
InvokeHelper(0x11, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nRow, nCol, lpszNewValue);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetFocusCellRow()
|
||||
{
|
||||
long result;
|
||||
InvokeHelper(0x12, DISPATCH_METHOD, VT_I4, (void*)&result, NULL);
|
||||
return result;
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetFocusCellColumn()
|
||||
{
|
||||
long result;
|
||||
InvokeHelper(0x13, DISPATCH_METHOD, VT_I4, (void*)&result, NULL);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::EnableCell(long nRow, long nCol, short bEnable)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_I2;
|
||||
InvokeHelper(0x14, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
nRow, nCol, bEnable);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::InsertColumn(BSTR* strHeading, long nFormat, long nCol, long nType, long dataType/* = 0*/, long unitType/* = 0*/)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_PBSTR VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x15, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
|
||||
strHeading, nFormat, nCol, nType, dataType, unitType);
|
||||
return result;
|
||||
}
|
||||
|
||||
long CAstOCXGrid::InsertRow(BSTR* strHeading, long nRow)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_PBSTR VTS_I4;
|
||||
InvokeHelper(0x16, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
|
||||
strHeading, nRow);
|
||||
return result;
|
||||
}
|
||||
|
||||
BOOL CAstOCXGrid::DeleteColumn(long nCol)
|
||||
{
|
||||
BOOL result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x17, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
|
||||
nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
BOOL CAstOCXGrid::DeleteRow(long nRow)
|
||||
{
|
||||
BOOL result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x18, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
|
||||
nRow);
|
||||
return result;
|
||||
}
|
||||
|
||||
BOOL CAstOCXGrid::DeleteAllItems()
|
||||
{
|
||||
BOOL result;
|
||||
InvokeHelper(0x19, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::AddStringToControl(BSTR* newValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_PBSTR;
|
||||
InvokeHelper(0x1a, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
newValue);
|
||||
}
|
||||
|
||||
BOOL CAstOCXGrid::SortItems(long nCol, short bAscending)
|
||||
{
|
||||
BOOL result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I2;
|
||||
InvokeHelper(0x1b, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
|
||||
nCol, bAscending);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetChecked(long nRow, long nCol, short nChecked)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_I2;
|
||||
InvokeHelper(0x1c, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
nRow, nCol, nChecked);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::AutoSizeRow(long nRow)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x1d, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
nRow);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::AutoSizeColumn(long nCol)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x1e, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
nCol);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::AutoSizeRows()
|
||||
{
|
||||
InvokeHelper(0x1f, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::AutoSizeColumns()
|
||||
{
|
||||
InvokeHelper(0x20, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::AutoSize()
|
||||
{
|
||||
InvokeHelper(0x21, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::ExpandColumnsToFit()
|
||||
{
|
||||
InvokeHelper(0x22, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::ExpandRowsToFit()
|
||||
{
|
||||
InvokeHelper(0x23, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::ExpandToFit()
|
||||
{
|
||||
InvokeHelper(0x24, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::AboutBox()
|
||||
{
|
||||
InvokeHelper(0xfffffdd8, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
||||
}
|
||||
void CAstOCXGrid::SetEditable(BOOL bEditable)
|
||||
{
|
||||
static BYTE params[] = VTS_BOOL;
|
||||
InvokeHelper(0x25, DISPATCH_METHOD, VT_EMPTY, NULL, params, bEditable );
|
||||
}
|
||||
|
||||
void CAstOCXGrid::RedrawCell(long nRow, long nCol)
|
||||
{
|
||||
static BYTE params[] = VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x26, DISPATCH_METHOD, VT_EMPTY, NULL, params, nRow, nCol);
|
||||
}
|
||||
|
||||
unsigned long CAstOCXGrid::GetGridBkColor()
|
||||
{
|
||||
unsigned long result;
|
||||
InvokeHelper(0x27, DISPATCH_PROPERTYGET, VT_UI4, (void*)&result, NULL);
|
||||
return result;
|
||||
}
|
||||
void CAstOCXGrid::SetGridBkColor(unsigned long newValue)
|
||||
{
|
||||
static BYTE parms[] = VTS_UI4 ;
|
||||
InvokeHelper(0x27, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
|
||||
}
|
||||
void CAstOCXGrid::AddTableToComboCol(long nCol, LPCTSTR lpszNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_BSTR;
|
||||
InvokeHelper(0x28, DISPATCH_METHOD, VT_EMPTY, NULL, parms, nCol, lpszNewValue);
|
||||
}
|
||||
|
||||
BOOL CAstOCXGrid::GetSortCombo()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x29, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetSortCombo(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x29, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetLongKey(long nRow, long nCol, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x2A, DISPATCH_METHOD, VT_EMPTY, NULL, parms, nRow, nCol, nNewValue);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetLongKey(long nRow, long nCol)
|
||||
{
|
||||
BOOL result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x2B, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetStringKey(long nRow, long nCol, LPCTSTR lpszNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_BSTR;
|
||||
InvokeHelper(0x2C, DISPATCH_METHOD, VT_EMPTY, NULL, parms, nRow, nCol, lpszNewValue);
|
||||
}
|
||||
|
||||
BSTR CAstOCXGrid::GetStringKey(long nRow, long nCol)
|
||||
{
|
||||
BSTR result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x2D, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetProfileName(long nRow, long nCol, LPCTSTR lpszNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4 VTS_BSTR;
|
||||
InvokeHelper(0x2E, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, nRow, nCol, lpszNewValue);
|
||||
}
|
||||
|
||||
CString CAstOCXGrid::GetProfileName(long nRow, long nCol)
|
||||
{
|
||||
CString result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x2E, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetCellReadOnly( long nRow, long nCol, short bReadOnly )
|
||||
{
|
||||
static BYTE params[] =
|
||||
VTS_I4 VTS_I4 VTS_I2;
|
||||
InvokeHelper(0x2F, DISPATCH_METHOD, VT_EMPTY, NULL, params,
|
||||
nRow, nCol, bReadOnly);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetDataType(long nRow, long nCol)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x30, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetDataType(long nRow, long nCol, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I2 VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x30, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nRow, nCol, nNewValue);
|
||||
}
|
||||
|
||||
long CAstOCXGrid::GetUnits(long nRow, long nCol)
|
||||
{
|
||||
long result;
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x31, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
|
||||
nRow, nCol);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstOCXGrid::SetUnits(long nRow, long nCol, long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I2 VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x31, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nRow, nCol, nNewValue);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::RedrawAllCells()
|
||||
{
|
||||
InvokeHelper(0x32, DISPATCH_METHOD, VT_EMPTY, NULL, VTS_NONE);
|
||||
}
|
||||
|
||||
void CAstOCXGrid::AppendProfileAcceptedClassGroup( LPCTSTR lpszNewValue )
|
||||
{
|
||||
static BYTE parms[] = VTS_BSTR;
|
||||
InvokeHelper(0x33, DISPATCH_METHOD, VT_EMPTY, NULL, parms, lpszNewValue);
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
#if !defined(AFX_ASTOCXGRID_H__A5C43C32_147D_4787_BA3E_AA692503E10F__INCLUDED_)
|
||||
#define AFX_ASTOCXGRID_H__A5C43C32_147D_4787_BA3E_AA692503E10F__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
// Dispatch interfaces referenced by this interface
|
||||
class CUnitsManager;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstOCXGrid wrapper class
|
||||
|
||||
typedef enum ColumnType
|
||||
{
|
||||
kEditBox = 0,
|
||||
kListBox = 1,
|
||||
kComboBox = 2,
|
||||
kCheckBox = 3,
|
||||
kProfileEdit = 4,
|
||||
kButton = 5,
|
||||
kWeldEdit = 6,
|
||||
kCrumbBox = 7
|
||||
} eColumnType;
|
||||
|
||||
typedef enum CellDataType
|
||||
{
|
||||
kUnits = 0,
|
||||
kDouble = 1,
|
||||
kInteger = 2,
|
||||
kString = 3
|
||||
} eColumnDataType;
|
||||
|
||||
typedef enum CellUnitType
|
||||
{
|
||||
kUnitDistance = 0,
|
||||
kUnitAngle = 1,
|
||||
kUnitWeight = 2,
|
||||
kUnitDistanceGUI = 3,
|
||||
kUnitArea = 4,
|
||||
kUnitVolume = 5,
|
||||
kUnitForce = 6,
|
||||
kUnitMoment = 7
|
||||
} eColumnUnitType;
|
||||
|
||||
class CAstOCXGrid : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstOCXGrid)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0x2633a54, 0x53da, 0x4506, { 0xa8, 0xc5, 0xc5, 0x10, 0xc1, 0x81, 0xf2, 0x3c } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName,
|
||||
LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect,
|
||||
CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey); }
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
long GetColumnCount();
|
||||
void SetColumnCount(long);
|
||||
long GetRowCount();
|
||||
void SetRowCount(long);
|
||||
long GetFixedRowCount();
|
||||
void SetFixedRowCount(long);
|
||||
long GetFixedColumnCount();
|
||||
void SetFixedColumnCount(long);
|
||||
CUnitsManager GetUnits();
|
||||
void SetUnits(LPDISPATCH);
|
||||
BOOL GetHeaderSort();
|
||||
void SetHeaderSort(BOOL);
|
||||
BOOL GetListMode();
|
||||
void SetListMode(BOOL);
|
||||
|
||||
// Operations
|
||||
public:
|
||||
long GetRowHeight(long nRow);
|
||||
void SetRowHeight(long nRow, long nNewValue);
|
||||
long GetColumnWidth(long nColumn);
|
||||
void SetColumnWidth(long nColumn, long nNewValue);
|
||||
unsigned long GetCellBkColor(long nRow, long nCol);
|
||||
void SetCellBkColor(long nRow, long nCol, unsigned long newValue);
|
||||
unsigned long GetCellFgColor(long nRow, long nCol);
|
||||
void SetCellFgColor(long nRow, long nCol, unsigned long newValue);
|
||||
unsigned long GetGridBkColor();
|
||||
void SetGridBkColor(unsigned long newValue);
|
||||
long GetColumnType(long nCol);
|
||||
void SetColumnType(long nCol, long nNewValue);
|
||||
long GetColumnDataType(long nCol);
|
||||
void SetColumnDataType(long nCol, long nNewValue);
|
||||
long GetColumnUnits(long nCol);
|
||||
void SetColumnUnits(long nCol, long nNewValue);
|
||||
double GetItemDoubleValue(long nRow, long nCol);
|
||||
void SetItemDoubleValue(long nRow, long nCol, double newValue);
|
||||
long GetItemIntegerValue(long nRow, long nCol);
|
||||
void SetItemIntegerValue(long nRow, long nCol, long nNewValue);
|
||||
CString GetItemTextValue(long nRow, long nCol);
|
||||
void SetItemTextValue(long nRow, long nCol, LPCTSTR lpszNewValue);
|
||||
long GetFocusCellRow();
|
||||
long GetFocusCellColumn();
|
||||
void EnableCell(long nRow, long nCol, short bEnable);
|
||||
long InsertColumn(BSTR* strHeading, long nFormat, long nCol, long nType, long dataType = kUnits, long unitType = kUnitDistance);
|
||||
long InsertRow(BSTR* strHeading, long nRow);
|
||||
BOOL DeleteColumn(long nCol);
|
||||
BOOL DeleteRow(long nRow);
|
||||
BOOL DeleteAllItems();
|
||||
void AddStringToControl(BSTR* newValue);
|
||||
BOOL SortItems(long nCol, short bAscending);
|
||||
void SetChecked(long nRow, long nCol, short nChecked);
|
||||
void AutoSizeRow(long nRow);
|
||||
void AutoSizeColumn(long nCol);
|
||||
void AutoSizeRows();
|
||||
void AutoSizeColumns();
|
||||
void AutoSize();
|
||||
void ExpandColumnsToFit();
|
||||
void ExpandRowsToFit();
|
||||
void ExpandToFit();
|
||||
void AboutBox();
|
||||
void SetEditable(BOOL bEditable);
|
||||
void RedrawCell(long nRow, long nCol);
|
||||
void AddTableToComboCol(long nColumn, LPCTSTR tableName);
|
||||
BOOL GetSortCombo();
|
||||
void SetSortCombo(BOOL newStyle);
|
||||
void SetLongKey(long nRow, long nCol, long nNewValue);
|
||||
long GetLongKey(long nRow, long nCol);
|
||||
void SetStringKey(long nRow, long nCol, LPCTSTR lpszNewValue);
|
||||
BSTR GetStringKey(long nRow, long nCol);
|
||||
void SetProfileName(long nRow, long nCol, LPCTSTR lpszNewValue);
|
||||
CString GetProfileName(long nRow, long nCol);
|
||||
void FillWeldCombo(long nColumn);
|
||||
void SetCellReadOnly(long nRow, long nCol, short bReadOnly);
|
||||
long GetDataType(long nRow, long nCol);
|
||||
void SetDataType(long nRow, long nCol, long nNewValue);
|
||||
long GetUnits(long nRow, long nCol);
|
||||
void SetUnits(long nRow, long nCol, long nNewValue);
|
||||
void RedrawAllCells();
|
||||
void AppendProfileAcceptedClassGroup(LPCTSTR lpszNewValue);
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_ASTOCXGRID_H__A5C43C32_147D_4787_BA3E_AA692503E10F__INCLUDED_)
|
||||
@@ -0,0 +1,273 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "astprofilecontrol.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstProfileControl
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstProfileControl, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstProfileControl properties
|
||||
|
||||
BOOL CAstProfileControl::GetShowHideAllSections()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x1, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetShowHideAllSections(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x1, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
CString CAstProfileControl::GetCurrentProfileName()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x2, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetCurrentProfileName(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x2, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
CString CAstProfileControl::GetCurrentClass()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x3, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetCurrentClass(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x3, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
CString CAstProfileControl::GetCurrentSection()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x4, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetCurrentSection(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x4, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
long CAstProfileControl::GetCaptionClass()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x5, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetCaptionClass(long propVal)
|
||||
{
|
||||
SetProperty(0x5, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstProfileControl::GetCaptionTyp()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x6, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetCaptionTyp(long propVal)
|
||||
{
|
||||
SetProperty(0x6, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstProfileControl::GetCaptionShowHideAllSections()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x7, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetCaptionShowHideAllSections(long propVal)
|
||||
{
|
||||
SetProperty(0x7, VT_I4, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstProfileControl::GetUseFilterClass()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x8, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetUseFilterClass(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x8, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstProfileControl::GetCheckBoxOnLeft()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x9, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetCheckBoxOnLeft(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x9, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
long CAstProfileControl::GetLabelLength()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0xa, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetLabelLength(long propVal)
|
||||
{
|
||||
SetProperty(0xa, VT_I4, propVal);
|
||||
}
|
||||
|
||||
CString CAstProfileControl::GetCurrentCrossSection()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0xb, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetCurrentCrossSection(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0xb, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstProfileControl::GetSummaryRepresentation()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0xc, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetSummaryRepresentation(BOOL propVal)
|
||||
{
|
||||
SetProperty(0xc, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstProfileControl::GetAppearance()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0xd, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetAppearance(BOOL propVal)
|
||||
{
|
||||
SetProperty(0xd, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
long CAstProfileControl::GetDropHeight()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0xe, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetDropHeight(long propVal)
|
||||
{
|
||||
SetProperty(0xe, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstProfileControl::GetDropWidth()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0xf, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetDropWidth(long propVal)
|
||||
{
|
||||
SetProperty(0xf, VT_I4, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstProfileControl::GetSummaryDroppedDown()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x10, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetSummaryDroppedDown(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x10, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstProfileControl::GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstProfileControl::GetShowPromptOnTop()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x17, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstProfileControl::SetShowPromptOnTop(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x17, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstProfileControl operations
|
||||
|
||||
void CAstProfileControl::AppendAcceptedClass(LPCTSTR newAcceptedClass)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_BSTR;
|
||||
InvokeHelper(0x11, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
newAcceptedClass);
|
||||
}
|
||||
|
||||
void CAstProfileControl::RemoveAcceptedClass(LPCTSTR AcceptedClass)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_BSTR;
|
||||
InvokeHelper(0x12, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
AcceptedClass);
|
||||
}
|
||||
|
||||
void CAstProfileControl::AppendAcceptedClassGroup(LPCTSTR SubtypeName)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_BSTR;
|
||||
InvokeHelper(0x13, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
SubtypeName);
|
||||
}
|
||||
|
||||
|
||||
void CAstProfileControl::RemoveAcceptedClassGroup(LPCTSTR SubtypeName)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_BSTR;
|
||||
InvokeHelper(0x18, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
SubtypeName);
|
||||
}
|
||||
|
||||
void CAstProfileControl::Reset()
|
||||
{
|
||||
InvokeHelper(0x19, DISPATCH_METHOD, VT_EMPTY, NULL, VTS_NONE);
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
#if !defined(AFX_ASTPROFILECONTROL_H__AB9EFEEC_B473_4CD6_BED1_C5923EA79B15__INCLUDED_)
|
||||
#define AFX_ASTPROFILECONTROL_H__AB9EFEEC_B473_4CD6_BED1_C5923EA79B15__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstProfileControl wrapper class
|
||||
|
||||
class CAstProfileControl : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstProfileControl)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0x574d51ef, 0x85f9, 0x415c, { 0x81, 0xce, 0x5a, 0xf, 0xc4, 0x5b, 0x1f, 0x79 } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName,
|
||||
LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect,
|
||||
CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey); }
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
BOOL GetShowHideAllSections();
|
||||
void SetShowHideAllSections(BOOL);
|
||||
CString GetCurrentProfileName();
|
||||
void SetCurrentProfileName(LPCTSTR);
|
||||
CString GetCurrentClass();
|
||||
void SetCurrentClass(LPCTSTR);
|
||||
CString GetCurrentSection();
|
||||
void SetCurrentSection(LPCTSTR);
|
||||
long GetCaptionClass();
|
||||
void SetCaptionClass(long);
|
||||
long GetCaptionTyp();
|
||||
void SetCaptionTyp(long);
|
||||
long GetCaptionShowHideAllSections();
|
||||
void SetCaptionShowHideAllSections(long);
|
||||
BOOL GetUseFilterClass();
|
||||
void SetUseFilterClass(BOOL);
|
||||
BOOL GetCheckBoxOnLeft();
|
||||
void SetCheckBoxOnLeft(BOOL);
|
||||
BOOL GetShowPromptOnTop();
|
||||
void SetShowPromptOnTop(BOOL);
|
||||
long GetLabelLength();
|
||||
void SetLabelLength(long);
|
||||
CString GetCurrentCrossSection();
|
||||
void SetCurrentCrossSection(LPCTSTR);
|
||||
BOOL GetSummaryRepresentation();
|
||||
void SetSummaryRepresentation(BOOL);
|
||||
BOOL GetAppearance();
|
||||
void SetAppearance(BOOL);
|
||||
long GetDropHeight();
|
||||
void SetDropHeight(long);
|
||||
long GetDropWidth();
|
||||
void SetDropWidth(long);
|
||||
BOOL GetSummaryDroppedDown();
|
||||
void SetSummaryDroppedDown(BOOL);
|
||||
BOOL GetEnabled();
|
||||
void SetEnabled(BOOL);
|
||||
|
||||
// Operations
|
||||
public:
|
||||
void AppendAcceptedClass(LPCTSTR newAcceptedClass);
|
||||
void RemoveAcceptedClass(LPCTSTR AcceptedClass);
|
||||
void AppendAcceptedClassGroup(LPCTSTR SubtypeName);
|
||||
void RemoveAcceptedClassGroup(LPCTSTR SubtypeName);
|
||||
void Reset();
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_ASTPROFILECONTROL_H__AB9EFEEC_B473_4CD6_BED1_C5923EA79B15__INCLUDED_)
|
||||
@@ -0,0 +1,43 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "aststaticprompt.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstStaticPrompt
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstStaticPrompt, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstStaticPrompt properties
|
||||
|
||||
long CAstStaticPrompt::GetKey()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x1, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstStaticPrompt::SetKey(long propVal)
|
||||
{
|
||||
SetProperty(0x1, VT_I4, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstStaticPrompt::GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstStaticPrompt::SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstStaticPrompt operations
|
||||
@@ -0,0 +1,53 @@
|
||||
#if !defined(AFX_ASTSTATICPROMPT_H__02DA9F43_CBBF_49F9_8E53_3B82F1251DA3__INCLUDED_)
|
||||
#define AFX_ASTSTATICPROMPT_H__02DA9F43_CBBF_49F9_8E53_3B82F1251DA3__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstStaticPrompt wrapper class
|
||||
|
||||
class CAstStaticPrompt : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstStaticPrompt)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0x25d0c857, 0x2689, 0x481c, { 0xb4, 0x70, 0xa0, 0x62, 0xe5, 0x9, 0x9, 0x58 } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName,
|
||||
LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect,
|
||||
CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey); }
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
long GetKey();
|
||||
void SetKey(long);
|
||||
BOOL GetEnabled();
|
||||
void SetEnabled(BOOL);
|
||||
|
||||
// Operations
|
||||
public:
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_ASTSTATICPROMPT_H__02DA9F43_CBBF_49F9_8E53_3B82F1251DA3__INCLUDED_)
|
||||
@@ -0,0 +1,19 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "aststatictextcontrol.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstStaticTextControl
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstStaticTextControl, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstStaticTextControl properties
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstStaticTextControl operations
|
||||
@@ -0,0 +1,127 @@
|
||||
#pragma once
|
||||
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstStaticTextControl wrapper class
|
||||
|
||||
class CAstStaticTextControl : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstStaticTextControl)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0x25D0C857, 0x2689, 0x481C, { 0xB4, 0x70, 0xA0, 0x62, 0xE5, 0x9, 0x9, 0x58 } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{
|
||||
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
|
||||
}
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
|
||||
UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{
|
||||
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey);
|
||||
}
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
enum
|
||||
{
|
||||
kEditBox = 0,
|
||||
kListBox = 1,
|
||||
kComboBox = 2,
|
||||
kCheckBox = 3,
|
||||
kProfileEdit = 4,
|
||||
kButton = 5
|
||||
}eColumnType;
|
||||
enum
|
||||
{
|
||||
kUnits = 0,
|
||||
kDouble = 1,
|
||||
kInteger = 2,
|
||||
kString = 3
|
||||
}eColumnDataType;
|
||||
enum
|
||||
{
|
||||
kUnitDistance = 0,
|
||||
kUnitAngle = 1,
|
||||
kUnitWeight = 2,
|
||||
kUnitDistanceGUI = 3,
|
||||
kUnitArea = 4,
|
||||
kUnitVolume = 5,
|
||||
kUnitForce = 6,
|
||||
kUnitMoment = 7
|
||||
}eColumnUnitType;
|
||||
enum
|
||||
{
|
||||
kBeam = 1,
|
||||
kPlate = 2
|
||||
}eGroupingRole;
|
||||
enum
|
||||
{
|
||||
kGratingStandard = 0,
|
||||
kGratingVariable = 1
|
||||
}eGratingType;
|
||||
enum
|
||||
{
|
||||
kType = 0,
|
||||
kClass = 1,
|
||||
kSize = 2
|
||||
}eGratingControls;
|
||||
enum
|
||||
{
|
||||
kNull = 0,
|
||||
kAnglePage = 1,
|
||||
kAreaPage = 2,
|
||||
kWeightPage = 4,
|
||||
kLengthPage = 8,
|
||||
kWeightPerDistancePage = 16,
|
||||
kAllPages = 255
|
||||
}eFirstPage;
|
||||
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// _DAstStaticPrompt
|
||||
|
||||
// Functions
|
||||
//
|
||||
|
||||
|
||||
// Properties
|
||||
//
|
||||
|
||||
long GetKey()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x1, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetKey(long propVal)
|
||||
{
|
||||
SetProperty(0x1, VT_I4, propVal);
|
||||
}
|
||||
BOOL GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
@@ -0,0 +1,141 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
#include "pch.h"
|
||||
#include "astunitcontrol.h"
|
||||
#include "font.h"
|
||||
#include "unitsmanager.h"
|
||||
// Dispatch interfaces referenced by this interface
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstUnitControl
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstUnitControl, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstUnitControl properties
|
||||
|
||||
unsigned long CAstUnitControl::GetBackColor()
|
||||
{
|
||||
unsigned long result;
|
||||
GetProperty(0x1, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetBackColor(unsigned long propVal)
|
||||
{
|
||||
SetProperty(0x1, VT_I4, propVal);
|
||||
}
|
||||
|
||||
short CAstUnitControl::GetEditType()
|
||||
{
|
||||
short result;
|
||||
GetProperty(0x2, VT_I2, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetEditType(short propVal)
|
||||
{
|
||||
SetProperty(0x2, VT_I2, propVal);
|
||||
}
|
||||
|
||||
COleFont CAstUnitControl::GetFont()
|
||||
{
|
||||
LPDISPATCH pDispatch;
|
||||
GetProperty(DISPID_FONT, VT_DISPATCH, (void*)&pDispatch);
|
||||
return COleFont(pDispatch);
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetFont(LPDISPATCH propVal)
|
||||
{
|
||||
SetProperty(DISPID_FONT, VT_DISPATCH, propVal);
|
||||
}
|
||||
|
||||
double CAstUnitControl::GetDoubleValue()
|
||||
{
|
||||
double result;
|
||||
GetProperty(0x3, VT_R8, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetDoubleValue(double propVal)
|
||||
{
|
||||
SetProperty(0x3, VT_R8, propVal);
|
||||
}
|
||||
|
||||
CString CAstUnitControl::GetText()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x4, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetText(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x4, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
CUnitsManager CAstUnitControl::GetUnits()
|
||||
{
|
||||
LPDISPATCH pDispatch;
|
||||
GetProperty(0x5, VT_DISPATCH, (void*)&pDispatch);
|
||||
return CUnitsManager(pDispatch);
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetUnits(LPDISPATCH propVal)
|
||||
{
|
||||
SetProperty(0x5, VT_DISPATCH, propVal);
|
||||
}
|
||||
|
||||
long CAstUnitControl::GetLabelDbKey()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x6, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetLabelDbKey(long propVal)
|
||||
{
|
||||
SetProperty(0x6, VT_I4, propVal);
|
||||
}
|
||||
|
||||
long CAstUnitControl::GetLabelLength()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x7, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetLabelLength(long propVal)
|
||||
{
|
||||
SetProperty(0x7, VT_I4, propVal);
|
||||
}
|
||||
|
||||
BOOL CAstUnitControl::GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
long CAstUnitControl::GetIntegerValue()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x8, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CAstUnitControl::SetIntegerValue(long propVal)
|
||||
{
|
||||
SetProperty(0x8, VT_I4, propVal);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstUnitControl operations
|
||||
@@ -0,0 +1,74 @@
|
||||
#if !defined(AFX_ASTUNITCONTROL_H__75321BD4_00D6_4705_ABA1_52BD1CE5C48C__INCLUDED_)
|
||||
#define AFX_ASTUNITCONTROL_H__75321BD4_00D6_4705_ABA1_52BD1CE5C48C__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
// Dispatch interfaces referenced by this interface
|
||||
class COleFont;
|
||||
class CUnitsManager;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstUnitControl wrapper class
|
||||
|
||||
class CAstUnitControl : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstUnitControl)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0x3a345bcb, 0xe386, 0x45de, { 0xa4, 0x25, 0xf4, 0x51, 0xc6, 0x6e, 0x18, 0x47 } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName,
|
||||
LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect,
|
||||
CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey); }
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
unsigned long GetBackColor();
|
||||
void SetBackColor(unsigned long);
|
||||
short GetEditType();
|
||||
void SetEditType(short);
|
||||
COleFont GetFont();
|
||||
void SetFont(LPDISPATCH);
|
||||
double GetDoubleValue();
|
||||
void SetDoubleValue(double);
|
||||
CString GetText();
|
||||
void SetText(LPCTSTR);
|
||||
CUnitsManager GetUnits();
|
||||
void SetUnits(LPDISPATCH);
|
||||
long GetLabelDbKey();
|
||||
void SetLabelDbKey(long);
|
||||
long GetLabelLength();
|
||||
void SetLabelLength(long);
|
||||
BOOL GetEnabled();
|
||||
void SetEnabled(BOOL);
|
||||
long GetIntegerValue();
|
||||
void SetIntegerValue(long);
|
||||
|
||||
// Operations
|
||||
public:
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_ASTUNITCONTROL_H__75321BD4_00D6_4705_ABA1_52BD1CE5C48C__INCLUDED_)
|
||||
@@ -0,0 +1,19 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "astweldcontrol.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstWeldControl
|
||||
|
||||
IMPLEMENT_DYNCREATE(CAstWeldControl, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstWeldControl properties
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstWeldControl operations
|
||||
@@ -0,0 +1,143 @@
|
||||
#pragma once
|
||||
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAstWeldControl wrapper class
|
||||
|
||||
class CAstWeldControl : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CAstWeldControl)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0xC90B8331, 0x9DA7, 0x41DD, { 0x8D, 0x66, 0x1E, 0xA9, 0x45, 0xC3, 0x36, 0x21 } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{
|
||||
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
|
||||
}
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
|
||||
UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{
|
||||
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey);
|
||||
}
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
enum
|
||||
{
|
||||
kEditBox = 0,
|
||||
kListBox = 1,
|
||||
kComboBox = 2,
|
||||
kCheckBox = 3,
|
||||
kProfileEdit = 4,
|
||||
kButton = 5
|
||||
}eColumnType;
|
||||
enum
|
||||
{
|
||||
kUnits = 0,
|
||||
kDouble = 1,
|
||||
kInteger = 2,
|
||||
kString = 3
|
||||
}eColumnDataType;
|
||||
enum
|
||||
{
|
||||
kUnitDistance = 0,
|
||||
kUnitAngle = 1,
|
||||
kUnitWeight = 2,
|
||||
kUnitDistanceGUI = 3,
|
||||
kUnitArea = 4,
|
||||
kUnitVolume = 5,
|
||||
kUnitForce = 6,
|
||||
kUnitMoment = 7
|
||||
}eColumnUnitType;
|
||||
enum
|
||||
{
|
||||
kBeam = 1,
|
||||
kPlate = 2
|
||||
}eGroupingRole;
|
||||
enum
|
||||
{
|
||||
kNull = 0,
|
||||
kAnglePage = 1,
|
||||
kAreaPage = 2,
|
||||
kWeightPage = 4,
|
||||
kLengthPage = 8,
|
||||
kWeightPerDistancePage = 16,
|
||||
kAllPages = 255
|
||||
}eFirstPage;
|
||||
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// _DAstWeldControl
|
||||
|
||||
// Functions
|
||||
//
|
||||
|
||||
void SelectItemByKey(long Key)
|
||||
{
|
||||
static BYTE parms[] = VTS_I4 ;
|
||||
InvokeHelper(0x2, DISPATCH_METHOD, VT_EMPTY, NULL, parms, Key);
|
||||
}
|
||||
long getSelectedItemKey()
|
||||
{
|
||||
long result;
|
||||
InvokeHelper(0x3, DISPATCH_METHOD, VT_I4, (void*)&result, NULL);
|
||||
return result;
|
||||
}
|
||||
BOOL IsCombiWelding()
|
||||
{
|
||||
BOOL result;
|
||||
InvokeHelper(0x4, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);
|
||||
return result;
|
||||
}
|
||||
|
||||
// Properties
|
||||
//
|
||||
|
||||
long GetLabelDbKey()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x5, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelDbKey(long propVal)
|
||||
{
|
||||
SetProperty(0x5, VT_I4, propVal);
|
||||
}
|
||||
long GetLabelLength()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x6, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelLength(long propVal)
|
||||
{
|
||||
SetProperty(0x6, VT_I4, propVal);
|
||||
}
|
||||
BOOL GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "boltstandards.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBoltstandardsctrl1
|
||||
|
||||
IMPLEMENT_DYNCREATE(CBoltStandards, CWnd)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBoltstandardsctrl1 properties
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBoltstandardsctrl1 operations
|
||||
@@ -0,0 +1,311 @@
|
||||
#pragma once
|
||||
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBoltstandardsctrl1 wrapper class
|
||||
#include "unitsmanager.h"
|
||||
|
||||
class CBoltStandards : public CWnd
|
||||
{
|
||||
protected:
|
||||
DECLARE_DYNCREATE(CBoltStandards)
|
||||
public:
|
||||
CLSID const& GetClsid()
|
||||
{
|
||||
static CLSID const clsid
|
||||
= { 0xC4B9CAC, 0xB571, 0x4906, { 0xB0, 0x6, 0x6, 0xFC, 0x98, 0x47, 0x37, 0x34 } };
|
||||
return clsid;
|
||||
}
|
||||
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
|
||||
const RECT& rect, CWnd* pParentWnd, UINT nID,
|
||||
CCreateContext* pContext = NULL)
|
||||
{
|
||||
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
|
||||
}
|
||||
|
||||
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
|
||||
UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
|
||||
BSTR bstrLicKey = NULL)
|
||||
{
|
||||
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
|
||||
pPersist, bStorage, bstrLicKey);
|
||||
}
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
enum
|
||||
{
|
||||
kEditBox = 0,
|
||||
kListBox = 1,
|
||||
kComboBox = 2,
|
||||
kCheckBox = 3,
|
||||
kProfileEdit = 4,
|
||||
kButton = 5
|
||||
}ColumnType;
|
||||
enum
|
||||
{
|
||||
kUnits = 0,
|
||||
kDouble = 1,
|
||||
kInteger = 2,
|
||||
kString = 3
|
||||
}ColumnDataType;
|
||||
enum
|
||||
{
|
||||
kUnitDistance = 0,
|
||||
kUnitAngle = 1,
|
||||
kUnitWeight = 2,
|
||||
kUnitDistanceGUI = 3,
|
||||
kUnitArea = 4,
|
||||
kUnitVolume = 5,
|
||||
kUnitForce = 6,
|
||||
kUnitMoment = 7
|
||||
}ColumnUnitType;
|
||||
enum
|
||||
{
|
||||
kBeam = 1,
|
||||
kPlate = 2
|
||||
}GroupingRole;
|
||||
enum
|
||||
{
|
||||
kGratingStandard = 0,
|
||||
kGratingVariable = 1
|
||||
}GratingType;
|
||||
enum
|
||||
{
|
||||
kType = 0,
|
||||
kClass = 1,
|
||||
kSize = 2
|
||||
}GratingControls;
|
||||
enum
|
||||
{
|
||||
kNull = 0,
|
||||
kAnglePage = 1,
|
||||
kAreaPage = 2,
|
||||
kWeightPage = 4,
|
||||
kLengthPage = 8,
|
||||
kWeightPerDistancePage = 16,
|
||||
kAllPages = 255
|
||||
}FirstPage;
|
||||
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// _DBoltStandards
|
||||
|
||||
// Functions
|
||||
//
|
||||
|
||||
|
||||
// Properties
|
||||
//
|
||||
|
||||
float GetLabelLength()
|
||||
{
|
||||
float result;
|
||||
GetProperty(0x1, VT_R4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelLength(float propVal)
|
||||
{
|
||||
SetProperty(0x1, VT_R4, propVal);
|
||||
}
|
||||
long GetLabelDiameter()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x2, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelDiameter(long propVal)
|
||||
{
|
||||
SetProperty(0x2, VT_I4, propVal);
|
||||
}
|
||||
long GetLabelStandard()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x3, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelStandard(long propVal)
|
||||
{
|
||||
SetProperty(0x3, VT_I4, propVal);
|
||||
}
|
||||
long GetLabelMaterial()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x4, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelMaterial(long propVal)
|
||||
{
|
||||
SetProperty(0x4, VT_I4, propVal);
|
||||
}
|
||||
long GetLabelBoltSet()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x5, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelBoltSet(long propVal)
|
||||
{
|
||||
SetProperty(0x5, VT_I4, propVal);
|
||||
}
|
||||
double GetBoltDiameter()
|
||||
{
|
||||
double result;
|
||||
GetProperty(0x6, VT_R8, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetBoltDiameter(double propVal)
|
||||
{
|
||||
SetProperty(0x6, VT_R8, propVal);
|
||||
}
|
||||
CString GetBoltStandard()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x7, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetBoltStandard(CString propVal)
|
||||
{
|
||||
SetProperty(0x7, VT_BSTR, propVal);
|
||||
}
|
||||
CString GetBoltMaterial()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x8, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetBoltMaterial(CString propVal)
|
||||
{
|
||||
SetProperty(0x8, VT_BSTR, propVal);
|
||||
}
|
||||
CString GetBoltSet()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x9, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetBoltSet(CString propVal)
|
||||
{
|
||||
SetProperty(0x9, VT_BSTR, propVal);
|
||||
}
|
||||
short GetElementType()
|
||||
{
|
||||
short result;
|
||||
GetProperty(0xa, VT_I2, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetElementType(short propVal)
|
||||
{
|
||||
SetProperty(0xa, VT_I2, propVal);
|
||||
}
|
||||
CString GetBoltStandardDescription()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0xb, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetBoltStandardDescription(CString propVal)
|
||||
{
|
||||
SetProperty(0xb, VT_BSTR, propVal);
|
||||
}
|
||||
CString GetBoltMaterialDescription()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0xc, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetBoltMaterialDescription(CString propVal)
|
||||
{
|
||||
SetProperty(0xc, VT_BSTR, propVal);
|
||||
}
|
||||
CString GetBoltSetDescription()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0xd, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetBoltSetDescription(CString propVal)
|
||||
{
|
||||
SetProperty(0xd, VT_BSTR, propVal);
|
||||
}
|
||||
CString GetBoltDiameterDescription()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0xe, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetBoltDiameterDescription(CString propVal)
|
||||
{
|
||||
SetProperty(0xe, VT_BSTR, propVal);
|
||||
}
|
||||
double GetAnchorLength()
|
||||
{
|
||||
double result;
|
||||
GetProperty(0xf, VT_R8, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetAnchorLength(double propVal)
|
||||
{
|
||||
SetProperty(0xf, VT_R8, propVal);
|
||||
}
|
||||
long GetLabelAnchorLength()
|
||||
{
|
||||
long result;
|
||||
GetProperty(0x10, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetLabelAnchorLength(long propVal)
|
||||
{
|
||||
SetProperty(0x10, VT_I4, propVal);
|
||||
}
|
||||
|
||||
CUnitsManager GetUnits()
|
||||
{
|
||||
LPDISPATCH pDispatch;
|
||||
GetProperty(0x11, VT_DISPATCH, (void*)&pDispatch);
|
||||
return CUnitsManager(pDispatch);
|
||||
}
|
||||
|
||||
void SetUnits(LPDISPATCH propVal)
|
||||
{
|
||||
SetProperty(0x11, VT_DISPATCH, propVal);
|
||||
}
|
||||
int GetControlHeight()
|
||||
{
|
||||
int result;
|
||||
GetProperty(0x12, VT_I4, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetControlHeight(int propVal)
|
||||
{
|
||||
SetProperty(0x12, VT_I4, propVal);
|
||||
}
|
||||
BOOL GetEnabled()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(DISPID_ENABLED, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetEnabled(BOOL propVal)
|
||||
{
|
||||
SetProperty(DISPID_ENABLED, VT_BOOL, propVal);
|
||||
}
|
||||
IFontDisp * GetFont()
|
||||
{
|
||||
IFontDisp * result;
|
||||
GetProperty(DISPID_FONT, VT_DISPATCH, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
void SetFont(IFontDisp * propVal)
|
||||
{
|
||||
SetProperty(DISPID_FONT, VT_DISPATCH, propVal);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
@@ -0,0 +1,111 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "font.h"
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// COleFont properties
|
||||
|
||||
CString COleFont::GetName()
|
||||
{
|
||||
CString result;
|
||||
GetProperty(0x0, VT_BSTR, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void COleFont::SetName(LPCTSTR propVal)
|
||||
{
|
||||
SetProperty(0x0, VT_BSTR, propVal);
|
||||
}
|
||||
|
||||
CY COleFont::GetSize()
|
||||
{
|
||||
CY result;
|
||||
GetProperty(0x2, VT_CY, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void COleFont::SetSize(const CY& propVal)
|
||||
{
|
||||
SetProperty(0x2, VT_CY, &propVal);
|
||||
}
|
||||
|
||||
BOOL COleFont::GetBold()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x3, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void COleFont::SetBold(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x3, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL COleFont::GetItalic()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x4, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void COleFont::SetItalic(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x4, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL COleFont::GetUnderline()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x5, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void COleFont::SetUnderline(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x5, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
BOOL COleFont::GetStrikethrough()
|
||||
{
|
||||
BOOL result;
|
||||
GetProperty(0x6, VT_BOOL, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void COleFont::SetStrikethrough(BOOL propVal)
|
||||
{
|
||||
SetProperty(0x6, VT_BOOL, propVal);
|
||||
}
|
||||
|
||||
short COleFont::GetWeight()
|
||||
{
|
||||
short result;
|
||||
GetProperty(0x7, VT_I2, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void COleFont::SetWeight(short propVal)
|
||||
{
|
||||
SetProperty(0x7, VT_I2, propVal);
|
||||
}
|
||||
|
||||
short COleFont::GetCharset()
|
||||
{
|
||||
short result;
|
||||
GetProperty(0x8, VT_I2, (void*)&result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void COleFont::SetCharset(short propVal)
|
||||
{
|
||||
SetProperty(0x8, VT_I2, propVal);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// COleFont operations
|
||||
@@ -0,0 +1,47 @@
|
||||
#if !defined(AFX_FONT_H__454B029E_2DFA_40AD_A69C_4666F95D7E40__INCLUDED_)
|
||||
#define AFX_FONT_H__454B029E_2DFA_40AD_A69C_4666F95D7E40__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// COleFont wrapper class
|
||||
|
||||
class COleFont : public COleDispatchDriver
|
||||
{
|
||||
public:
|
||||
COleFont() {} // Calls COleDispatchDriver default constructor
|
||||
COleFont(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
|
||||
COleFont(const COleFont& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
CString GetName();
|
||||
void SetName(LPCTSTR);
|
||||
CY GetSize();
|
||||
void SetSize(const CY&);
|
||||
BOOL GetBold();
|
||||
void SetBold(BOOL);
|
||||
BOOL GetItalic();
|
||||
void SetItalic(BOOL);
|
||||
BOOL GetUnderline();
|
||||
void SetUnderline(BOOL);
|
||||
BOOL GetStrikethrough();
|
||||
void SetStrikethrough(BOOL);
|
||||
short GetWeight();
|
||||
void SetWeight(short);
|
||||
short GetCharset();
|
||||
void SetCharset(short);
|
||||
|
||||
// Operations
|
||||
public:
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_FONT_H__454B029E_2DFA_40AD_A69C_4666F95D7E40__INCLUDED_)
|
||||
@@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
// Windows Header Files
|
||||
#include <windows.h>
|
||||
@@ -0,0 +1,5 @@
|
||||
// pch.cpp: source file corresponding to the pre-compiled header
|
||||
|
||||
#include "pch.h"
|
||||
|
||||
// When you are using pre-compiled headers, this source file is necessary for compilation to succeed.
|
||||
@@ -0,0 +1,38 @@
|
||||
// pch.h: This is a precompiled header file.
|
||||
// Files listed below are compiled only once, improving build performance for future builds.
|
||||
// This also affects IntelliSense performance, including code completion and many code browsing features.
|
||||
// However, files listed here are ALL re-compiled if any one of them is updated between builds.
|
||||
// Do not add files here that you will be updating frequently as this negates the performance advantage.
|
||||
|
||||
#ifndef PCH_H
|
||||
#define PCH_H
|
||||
|
||||
// add headers that you want to pre-compile here
|
||||
|
||||
#include <afxwin.h>
|
||||
#include <afxdisp.h>
|
||||
#include <afxdlgs.h>
|
||||
#include <afxcmn.h>
|
||||
#include <atlbase.h>
|
||||
//You may derive a class from CComModule and use it if you want to override
|
||||
//something, but do not change the name of _Module
|
||||
extern CComModule _Module;
|
||||
#include <atlcom.h>
|
||||
#include <comdef.h>
|
||||
#include <vector>
|
||||
#include <math.h>
|
||||
#include <string>
|
||||
|
||||
#import "AstorMain5.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
|
||||
#import "DscOdbcCom.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
|
||||
|
||||
|
||||
#include "resource.h"
|
||||
#include "SampleClipAngleNative_h.h"
|
||||
|
||||
#include "ClipAngle.h"
|
||||
|
||||
#include "framework.h"
|
||||
|
||||
#endif //PCH_H
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by SampleClipAngle.rc
|
||||
//
|
||||
#define IDD_CLIPANGLEDIALOG 103
|
||||
#define IDR_SampleClipAngle 1000
|
||||
#define IDC_ASTBITMAPCONTROL1 1001
|
||||
#define IDC_BOLTSTANDARDSCTRL1 1002
|
||||
#define IDC_ASTPROFILECONTROL1 1003
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 103
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1004
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
@@ -0,0 +1,235 @@
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
|
||||
#include "pch.h"
|
||||
#include "unitsmanager.h"
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CUnitsManager properties
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CUnitsManager operations
|
||||
|
||||
void CUnitsManager::SetUseRegionalSettings(long nNewValue)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x1, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
|
||||
nNewValue);
|
||||
}
|
||||
|
||||
long CUnitsManager::GetUseRegionalSettings()
|
||||
{
|
||||
long result;
|
||||
InvokeHelper(0x1, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
|
||||
return result;
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfDistance(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x2, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfDistance(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x3, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfWeight(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x4, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfWeight(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x5, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfAngle(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x6, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfAngle(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x7, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::doModal()
|
||||
{
|
||||
InvokeHelper(0x8, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfArea(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x9, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfArea(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0xa, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfVolume(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0xb, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfVolume(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0xc, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfDistanceGUI(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0xd, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfDistanceGUI(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0xe, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfForce(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0xf, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfForce(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x10, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfMoment(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x11, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfMoment(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x12, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfWeightPerDistance(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x13, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfWeightPerDistance(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x14, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::getUnitOfAreaPerDistance(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x15, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::setUnitOfAreaPerDistance(LPDISPATCH retval)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_DISPATCH;
|
||||
InvokeHelper(0x16, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
retval);
|
||||
}
|
||||
|
||||
void CUnitsManager::doModalWithCaption(LPCTSTR caption)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_BSTR;
|
||||
InvokeHelper(0x17, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
caption);
|
||||
}
|
||||
|
||||
void CUnitsManager::doModalWithChooseFirstPage(long firstPageNo)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x18, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
firstPageNo);
|
||||
}
|
||||
|
||||
void CUnitsManager::doModalUnitPage(long pageNo)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4;
|
||||
InvokeHelper(0x19, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
pageNo);
|
||||
}
|
||||
|
||||
void CUnitsManager::doModalUnitPages(long pagesSelection, long page)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x1a, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
pagesSelection, page);
|
||||
}
|
||||
|
||||
void CUnitsManager::doModalWithCaptionUnitPages(LPCTSTR caption, long pagesSelection, long page)
|
||||
{
|
||||
static BYTE parms[] =
|
||||
VTS_BSTR VTS_I4 VTS_I4;
|
||||
InvokeHelper(0x1b, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
|
||||
caption, pagesSelection, page);
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
#if !defined(AFX_UNITSMANAGER_H__CEBB4162_730D_40CD_8126_AD9245ED4795__INCLUDED_)
|
||||
#define AFX_UNITSMANAGER_H__CEBB4162_730D_40CD_8126_AD9245ED4795__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
|
||||
// NOTE: Do not modify the contents of this file. If this class is regenerated by
|
||||
// Microsoft Visual C++, your modifications will be overwritten.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CUnitsManager wrapper class
|
||||
|
||||
class CUnitsManager : public COleDispatchDriver
|
||||
{
|
||||
public:
|
||||
CUnitsManager() {} // Calls COleDispatchDriver default constructor
|
||||
CUnitsManager(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
|
||||
CUnitsManager(const CUnitsManager& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
|
||||
// Operations
|
||||
public:
|
||||
void SetUseRegionalSettings(long nNewValue);
|
||||
long GetUseRegionalSettings();
|
||||
void getUnitOfDistance(LPDISPATCH retval);
|
||||
void setUnitOfDistance(LPDISPATCH retval);
|
||||
void getUnitOfWeight(LPDISPATCH retval);
|
||||
void setUnitOfWeight(LPDISPATCH retval);
|
||||
void getUnitOfAngle(LPDISPATCH retval);
|
||||
void setUnitOfAngle(LPDISPATCH retval);
|
||||
void doModal();
|
||||
void getUnitOfArea(LPDISPATCH retval);
|
||||
void setUnitOfArea(LPDISPATCH retval);
|
||||
void getUnitOfVolume(LPDISPATCH retval);
|
||||
void setUnitOfVolume(LPDISPATCH retval);
|
||||
void getUnitOfDistanceGUI(LPDISPATCH retval);
|
||||
void setUnitOfDistanceGUI(LPDISPATCH retval);
|
||||
void getUnitOfForce(LPDISPATCH retval);
|
||||
void setUnitOfForce(LPDISPATCH retval);
|
||||
void getUnitOfMoment(LPDISPATCH retval);
|
||||
void setUnitOfMoment(LPDISPATCH retval);
|
||||
void getUnitOfWeightPerDistance(LPDISPATCH retval);
|
||||
void setUnitOfWeightPerDistance(LPDISPATCH retval);
|
||||
void getUnitOfAreaPerDistance(LPDISPATCH retval);
|
||||
void setUnitOfAreaPerDistance(LPDISPATCH retval);
|
||||
void doModalWithCaption(LPCTSTR caption);
|
||||
void doModalWithChooseFirstPage(long firstPageNo);
|
||||
void doModalUnitPage(long pageNo);
|
||||
void doModalUnitPages(long pagesSelection, long page);
|
||||
void doModalWithCaptionUnitPages(LPCTSTR caption, long pagesSelection, long page);
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_UNITSMANAGER_H__CEBB4162_730D_40CD_8126_AD9245ED4795__INCLUDED_)
|
||||
@@ -0,0 +1,321 @@
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright 2015 Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Use of this software is subject to the terms of the Autodesk license
|
||||
// agreement provided at the time of installation or download, or which
|
||||
// otherwise accompanies this software in either electronic or hard copy form.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using AstSTEELAUTOMATIONLib;
|
||||
using JointDesignUtils;
|
||||
|
||||
|
||||
namespace SampleDesign
|
||||
{
|
||||
[ComVisible(true)]
|
||||
[Guid("C64ECF63-D01C-451F-B0E0-E3F85DFAC05E")]
|
||||
|
||||
public class CreatePlateDesign : INodeStressAppModule
|
||||
{
|
||||
#region Private_Members
|
||||
private StressModuleJoint m_joint;
|
||||
|
||||
private Torsors m_pTorsorsPage;
|
||||
private SimpleTorsors m_SimpleTorsorsPage;
|
||||
private Settings m_SettingsPage;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Standard_Methods
|
||||
|
||||
public eJointStatus CheckJoint()
|
||||
{
|
||||
eJointStatus ret = eJointStatus.JointSupported;
|
||||
|
||||
//report format
|
||||
int nReportFormat = (int)getJointNSAModuleSpecificData(m_joint, this, "ReportFormat", 0);
|
||||
|
||||
//get efforts
|
||||
List<double> dM, dN, dV;
|
||||
List<string> sCaseName;
|
||||
getEfforts(m_joint, m_joint.GetJointNSAModuleLoadingCases(this), m_joint.UseDetailedTorsors, out dM, out dN, out dV, out sCaseName);
|
||||
|
||||
|
||||
//read some values from joint
|
||||
bool bModifiable = false;
|
||||
double dPlateThickness = (double)m_joint.GetJointParam("PlateThickness", ref bModifiable);
|
||||
double dPlateLength = (double)m_joint.GetJointParam("PlateLength", ref bModifiable);
|
||||
double dPlateWidth = (double)m_joint.GetJointParam("PlateWidth", ref bModifiable);
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public bool DesignEngineAvailable()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public eJointStatus ExportJoint()
|
||||
{
|
||||
return eJointStatus.JointUnknownStatus;
|
||||
}
|
||||
|
||||
public void FreeUserPages()
|
||||
{
|
||||
if (m_pTorsorsPage != null)
|
||||
{
|
||||
m_pTorsorsPage.Dispose();
|
||||
m_pTorsorsPage = null;
|
||||
}
|
||||
if (m_SettingsPage != null)
|
||||
{
|
||||
m_SettingsPage.Dispose();
|
||||
m_SettingsPage = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void FreeUserTorsorsPage()
|
||||
{
|
||||
if (m_SimpleTorsorsPage != null)
|
||||
{
|
||||
m_SimpleTorsorsPage.Dispose();
|
||||
m_SimpleTorsorsPage = null;
|
||||
}
|
||||
}
|
||||
|
||||
public string GetExportName()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public bool GetFeatureName(ref string FeatureName)
|
||||
{
|
||||
FeatureName = "JOINT_DESIGN_EC3";
|
||||
return true;
|
||||
}
|
||||
|
||||
public string GetImportName()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public string GetLastReportFilename(bool bQuickReportFilename)
|
||||
{
|
||||
if (bQuickReportFilename)
|
||||
return m_joint.GetModuleOutputFileName(this) + ".txt";
|
||||
else
|
||||
return m_joint.GetModuleOutputFileName(this) + ".html";
|
||||
}
|
||||
|
||||
public void GetProcessingModes(out bool bCheckAvailable, out bool bPresizeAvailable, out bool bImportAvailable, out bool bExportAvailable, out bool bUseLoadCasesAvailable)
|
||||
{
|
||||
bCheckAvailable = true;
|
||||
bPresizeAvailable = false;
|
||||
bImportAvailable = false;
|
||||
bExportAvailable = false;
|
||||
bUseLoadCasesAvailable = true;
|
||||
}
|
||||
|
||||
public void GetUserPages(RulePageArray pagesRet, PropertySheetData pPropSheetData)
|
||||
{
|
||||
m_pTorsorsPage = new Torsors();
|
||||
m_pTorsorsPage.setJoint(this);
|
||||
|
||||
RulePage pgTorsors = m_joint.CreateRulePage();
|
||||
pgTorsors.title = 88136;
|
||||
pgTorsors.hWnd = (int)m_pTorsorsPage.Handle;
|
||||
pagesRet.Add(pgTorsors);
|
||||
}
|
||||
|
||||
public void GetUserSettingsPages(RulePageArray pagesSettingsRet, PropertySheetData pPropSheetData)
|
||||
{
|
||||
pPropSheetData.SheetPrompt = 88140;
|
||||
|
||||
m_SettingsPage = new Settings();
|
||||
m_SettingsPage.setJoint(this);
|
||||
|
||||
RulePage pgSettings = m_joint.CreateRulePage();
|
||||
pgSettings.title = 88140;
|
||||
pgSettings.hWnd = (int)m_SettingsPage.Handle;
|
||||
pagesSettingsRet.Add(pgSettings);
|
||||
}
|
||||
|
||||
public void GetUserTorsorsPage(RulePage pageRet)
|
||||
{
|
||||
m_SimpleTorsorsPage = new SimpleTorsors();
|
||||
m_SimpleTorsorsPage.setJoint(this);
|
||||
pageRet.hWnd = (int)m_SimpleTorsorsPage.Handle;
|
||||
}
|
||||
|
||||
public eJointStatus ImportJoint()
|
||||
{
|
||||
return eJointStatus.JointUnknownStatus;
|
||||
}
|
||||
|
||||
public void InvalidFeature(int reserved)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public StressModuleJoint Joint
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_joint;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_joint = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string ModuleName
|
||||
{
|
||||
get { return "EC3 Design"; }
|
||||
}
|
||||
|
||||
public eJointStatus PresizeJoint()
|
||||
{
|
||||
return eJointStatus.JointUnknownStatus;
|
||||
}
|
||||
|
||||
public string Standard
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Standard";
|
||||
}
|
||||
set
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private_Methods
|
||||
|
||||
private object getJointNSAModuleSpecificData(StressModuleJoint pCurJoint, INodeStressAppModule NSAModule, string sKey, object defaultValue)
|
||||
{
|
||||
object param = defaultValue;
|
||||
|
||||
try
|
||||
{
|
||||
param = pCurJoint.GetJointNSAModuleSpecificData(NSAModule, sKey);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.Write(e.Message);
|
||||
try
|
||||
{
|
||||
pCurJoint.SetJointNSAModuleSpecificData(NSAModule, defaultValue, sKey);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.Write(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return param;
|
||||
}
|
||||
|
||||
private void getEfforts(StressModuleJoint pCurJoint, IJointLoadingCases spJointLoadingCases, bool bUseDetailedTorsors,
|
||||
out List<double> dfEffM, out List<double> dfEffN, out List<double> dfEffV, out List<string> sCaseName)
|
||||
{
|
||||
|
||||
dfEffM = new List<double>();
|
||||
dfEffN = new List<double>();
|
||||
dfEffV = new List<double>();
|
||||
sCaseName = new List<string>();
|
||||
|
||||
//get the efforts from SIMPLE TORSORS
|
||||
try
|
||||
{
|
||||
if (null != spJointLoadingCases && false == bUseDetailedTorsors)
|
||||
{
|
||||
if ((int)spJointLoadingCases.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < (int)spJointLoadingCases.Count; i++)
|
||||
{
|
||||
IJointLoadingCase spJointLoadingCase = spJointLoadingCases[i];
|
||||
IJointEfforts spJointEfforts = spJointLoadingCase.JointEfforts;
|
||||
|
||||
if (null != spJointEfforts && spJointLoadingCase.Name == "SimpleMaxTorsor")
|
||||
{
|
||||
if (3 == (int)spJointEfforts.Count)
|
||||
{
|
||||
sCaseName.Add(spJointLoadingCase.Name);
|
||||
dfEffM.Add((double)spJointEfforts[0].Value);
|
||||
dfEffN.Add((double)spJointEfforts[1].Value);
|
||||
dfEffV.Add((double)spJointEfforts[2].Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.Diagnostics.Debug.Write(e);
|
||||
}
|
||||
|
||||
|
||||
//get the efforts from DETAILED TORSORS
|
||||
try
|
||||
{
|
||||
char[] splitChars = new char[2];
|
||||
splitChars[0] = '#';
|
||||
splitChars[1] = '@';
|
||||
|
||||
if (bUseDetailedTorsors)
|
||||
{
|
||||
if (null != spJointLoadingCases)
|
||||
{
|
||||
if ((int)spJointLoadingCases.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < (int)spJointLoadingCases.Count; i++)
|
||||
{
|
||||
IJointLoadingCase spJointLoadingCase = spJointLoadingCases[i];
|
||||
IJointEfforts spJointEfforts = spJointLoadingCase.JointEfforts;
|
||||
|
||||
if (null != spJointEfforts && spJointLoadingCase.Name != "SimpleMaxTorsor")
|
||||
{
|
||||
if (3 == (int)spJointEfforts.Count)
|
||||
{
|
||||
string[] sSplitName = spJointLoadingCase.Name.Split(splitChars);
|
||||
sCaseName.Add(sSplitName[sSplitName.Length - 1]);
|
||||
dfEffM.Add((double)spJointEfforts[0].Value);
|
||||
dfEffN.Add((double)spJointEfforts[1].Value);
|
||||
dfEffV.Add((double)spJointEfforts[2].Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.Diagnostics.Debug.Write(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void InitializeDesignModuleData()
|
||||
{
|
||||
if (m_joint == null)
|
||||
return;
|
||||
|
||||
Utils.InitializeEC3JointDesignData(m_joint, this);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -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("SampleDesign")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Autodesk")]
|
||||
[assembly: AssemblyProduct("SampleDesign")]
|
||||
[assembly: AssemblyCopyright("Copyright © Autodesk 2015")]
|
||||
[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("71b9c5c2-f638-42a2-b13b-10bdfac16f7d")]
|
||||
|
||||
// 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")]
|
||||
@@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\StructuralConnectionsSDKSamples.Common.props" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x64</Platform>
|
||||
<ProjectGuid>{9CE75523-141E-4F65-8F96-71E2A9C826E2}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SampleDesign</RootNamespace>
|
||||
<AssemblyName>SampleDesign</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AxInterop.ASTCONTROLSLib">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\AxInterop.ASTCONTROLSLib.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="DotNetRoots">
|
||||
<HintPath>$(ASInstallDir)\DotNetRoots.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Interop.ASTCONTROLSLib">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\Interop.ASTCONTROLSLib.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Interop.AstSTEELAUTOMATIONLib5">
|
||||
<HintPath>$(ASInstallDir)\Interop.AstSTEELAUTOMATIONLib5.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Interop.DSCGEOMCOMLib">
|
||||
<HintPath>$(ASInstallDir)\Interop.DSCGEOMCOMLib.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Interop.DSCODBCCOMLib">
|
||||
<HintPath>$(ASInstallDir)\Interop.DSCODBCCOMLib.dll</HintPath>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</Reference>
|
||||
<Reference Include="Interop.DSCRootsCOMLib">
|
||||
<HintPath>$(ASInstallDir)\Interop.DSCRootsCOMLib.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="DotNetRoots">
|
||||
<HintPath>$(ASInstallDir)\JointDesignUtils.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="JointDesignUtils">
|
||||
<HintPath>$(ASInstallDir)\JointDesignUtils.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CreatePlateDesign.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Settings.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Settings.Designer.cs">
|
||||
<DependentUpon>Settings.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SimpleTorsors.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SimpleTorsors.Designer.cs">
|
||||
<DependentUpon>SimpleTorsors.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Torsors.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Torsors.Designer.cs">
|
||||
<DependentUpon>Torsors.cs</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Settings.resx">
|
||||
<DependentUpon>Settings.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SimpleTorsors.resx">
|
||||
<DependentUpon>SimpleTorsors.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Torsors.resx">
|
||||
<DependentUpon>Torsors.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<COMReference Include="stdole">
|
||||
<Guid>{00020430-0000-0000-C000-000000000046}</Guid>
|
||||
<VersionMajor>2</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>primary</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</COMReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -0,0 +1,91 @@
|
||||
namespace SampleDesign
|
||||
{
|
||||
partial class Settings
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.gbReport = new System.Windows.Forms.GroupBox();
|
||||
this.lbReportFormat = new System.Windows.Forms.Label();
|
||||
this.cbReportFormat = new System.Windows.Forms.ComboBox();
|
||||
this.gbReport.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// gbReport
|
||||
//
|
||||
this.gbReport.Controls.Add(this.lbReportFormat);
|
||||
this.gbReport.Controls.Add(this.cbReportFormat);
|
||||
this.gbReport.Location = new System.Drawing.Point(3, 3);
|
||||
this.gbReport.Name = "gbReport";
|
||||
this.gbReport.Size = new System.Drawing.Size(325, 58);
|
||||
this.gbReport.TabIndex = 13;
|
||||
this.gbReport.TabStop = false;
|
||||
this.gbReport.Text = "Report";
|
||||
//
|
||||
// lbReportFormat
|
||||
//
|
||||
this.lbReportFormat.AutoSize = true;
|
||||
this.lbReportFormat.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.lbReportFormat.Location = new System.Drawing.Point(2, 17);
|
||||
this.lbReportFormat.Name = "lbReportFormat";
|
||||
this.lbReportFormat.Size = new System.Drawing.Size(39, 13);
|
||||
this.lbReportFormat.TabIndex = 0;
|
||||
this.lbReportFormat.Text = "Format";
|
||||
//
|
||||
// cbReportFormat
|
||||
//
|
||||
this.cbReportFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cbReportFormat.FormattingEnabled = true;
|
||||
this.cbReportFormat.Items.AddRange(new object[] {
|
||||
"LRFD",
|
||||
"ASD"});
|
||||
this.cbReportFormat.Location = new System.Drawing.Point(196, 17);
|
||||
this.cbReportFormat.Name = "cbReportFormat";
|
||||
this.cbReportFormat.Size = new System.Drawing.Size(121, 21);
|
||||
this.cbReportFormat.TabIndex = 0;
|
||||
this.cbReportFormat.SelectedIndexChanged += new System.EventHandler(this.cbReportFormat_SelectedIndexChanged);
|
||||
//
|
||||
// Settings
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.Controls.Add(this.gbReport);
|
||||
this.Name = "Settings";
|
||||
this.Size = new System.Drawing.Size(347, 285);
|
||||
this.gbReport.ResumeLayout(false);
|
||||
this.gbReport.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.GroupBox gbReport;
|
||||
private System.Windows.Forms.Label lbReportFormat;
|
||||
private System.Windows.Forms.ComboBox cbReportFormat;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright 2015 Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Use of this software is subject to the terms of the Autodesk license
|
||||
// agreement provided at the time of installation or download, or which
|
||||
// otherwise accompanies this software in either electronic or hard copy form.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using AstSTEELAUTOMATIONLib;
|
||||
|
||||
namespace SampleDesign
|
||||
{
|
||||
public partial class Settings : UserControl
|
||||
{
|
||||
|
||||
#region Constructor
|
||||
|
||||
public Settings()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.Visible = false;
|
||||
|
||||
cbReportFormat.Items.Clear();
|
||||
cbReportFormat.Items.Add("RTF");
|
||||
cbReportFormat.Items.Add("HTML");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private_Members
|
||||
|
||||
private INodeStressAppModule m_pCurSMRule;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public_Methods
|
||||
|
||||
public void setJoint(INodeStressAppModule pVal)
|
||||
{
|
||||
m_pCurSMRule = pVal;
|
||||
|
||||
|
||||
int nSelIndex = -1;
|
||||
try
|
||||
{
|
||||
nSelIndex = (int)m_pCurSMRule.Joint.GetJointNSAModuleSpecificData(m_pCurSMRule, "ReportFormat");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_pCurSMRule.Joint.SetJointNSAModuleSpecificData(m_pCurSMRule, 0, "ReportFormat");
|
||||
}
|
||||
if (nSelIndex > -1 && cbReportFormat.Items.Count > nSelIndex)
|
||||
cbReportFormat.SelectedIndex = nSelIndex;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Private_Methods
|
||||
private void cbReportFormat_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
m_pCurSMRule.Joint.SetJointNSAModuleSpecificData(m_pCurSMRule, this.cbReportFormat.SelectedIndex, "ReportFormat");
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -0,0 +1,63 @@
|
||||
namespace SampleDesign
|
||||
{
|
||||
partial class SimpleTorsors
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SimpleTorsors));
|
||||
this.axSimpleTorsors = new AxASTCONTROLSLib.AxAstOCXGrid();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axSimpleTorsors)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// axSimpleTorsors
|
||||
//
|
||||
this.axSimpleTorsors.Enabled = true;
|
||||
this.axSimpleTorsors.Location = new System.Drawing.Point(3, 22);
|
||||
this.axSimpleTorsors.Name = "axSimpleTorsors";
|
||||
this.axSimpleTorsors.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axSimpleTorsors.OcxState")));
|
||||
this.axSimpleTorsors.Size = new System.Drawing.Size(232, 70);
|
||||
this.axSimpleTorsors.TabIndex = 4;
|
||||
this.axSimpleTorsors.OnGridCellEdited += new AxASTCONTROLSLib._DAstOCXGridEvents_OnGridCellEditedEventHandler(this.axSimpleTorsors_OnGridCellEdited);
|
||||
//
|
||||
// SimpleTorsors
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.Controls.Add(this.axSimpleTorsors);
|
||||
this.Name = "SimpleTorsors";
|
||||
this.Size = new System.Drawing.Size(150, 150);
|
||||
((System.ComponentModel.ISupportInitialize)(this.axSimpleTorsors)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private AxASTCONTROLSLib.AxAstOCXGrid axSimpleTorsors;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,291 @@
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright 2015 Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Use of this software is subject to the terms of the Autodesk license
|
||||
// agreement provided at the time of installation or download, or which
|
||||
// otherwise accompanies this software in either electronic or hard copy form.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using AstSTEELAUTOMATIONLib;
|
||||
using Autodesk.AdvanceSteel.DotNetRoots.DatabaseAccess;
|
||||
using AxASTCONTROLSLib;
|
||||
|
||||
namespace SampleDesign
|
||||
{
|
||||
public partial class SimpleTorsors : UserControl
|
||||
{
|
||||
#region private members
|
||||
|
||||
private CreatePlateDesign m_CreatePlateDesign;
|
||||
double m_dMaxM;
|
||||
double m_dMaxN;
|
||||
double m_dMaxV;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public SimpleTorsors()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.Visible = false;
|
||||
|
||||
m_dMaxM = 0;
|
||||
m_dMaxN = 0;
|
||||
m_dMaxV = 0;
|
||||
|
||||
m_CreatePlateDesign = null;
|
||||
}
|
||||
|
||||
public void setJoint(CreatePlateDesign pVal)
|
||||
{
|
||||
m_dMaxM = 0;
|
||||
m_dMaxN = 0;
|
||||
m_dMaxV = 0;
|
||||
|
||||
m_CreatePlateDesign = pVal;
|
||||
setJoint(m_CreatePlateDesign, 1);
|
||||
setEnable(1, m_CreatePlateDesign);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private_Methods
|
||||
|
||||
private void axSimpleTorsors_OnGridCellEdited(object sender, _DAstOCXGridEvents_OnGridCellEditedEvent e)
|
||||
{
|
||||
double newM = 0;
|
||||
double newN = 0;
|
||||
double newT = 0;
|
||||
|
||||
int nRow = axSimpleTorsors.GetFocusCellRow();
|
||||
|
||||
newM = axSimpleTorsors.get_ItemDoubleValue(nRow, 0);
|
||||
newN = axSimpleTorsors.get_ItemDoubleValue(nRow, 1);
|
||||
newT = axSimpleTorsors.get_ItemDoubleValue(nRow, 2);
|
||||
|
||||
if (1 == nRow)
|
||||
setJointTorsorsValues(m_CreatePlateDesign, newM, newN, newT, "SimpleMaxTorsor");
|
||||
}
|
||||
|
||||
private void setJointTorsorsValues(INodeStressAppModule m_pCurSMRule, double dMaxM, double dMaxN, double dMaxT, string sLoadingCaseName)
|
||||
{
|
||||
IStressModuleJoint curSMJoint = m_pCurSMRule.Joint;
|
||||
|
||||
bool bFoundLoadingCase = false;
|
||||
|
||||
//get now the module loading cases
|
||||
JointLoadingCases spJointLoadingCases = curSMJoint.GetJointNSAModuleLoadingCases(m_pCurSMRule);
|
||||
|
||||
if (null != spJointLoadingCases)
|
||||
{
|
||||
for (int i = 0; i < (int)spJointLoadingCases.Count; i++)
|
||||
{
|
||||
IJointLoadingCase spJointLoadingCase = spJointLoadingCases[i];
|
||||
IJointEfforts spJointEfforts = spJointLoadingCase.JointEfforts;
|
||||
|
||||
if ((null != spJointEfforts) && (spJointLoadingCase.Name == sLoadingCaseName))
|
||||
{
|
||||
if (3 == (int)spJointEfforts.Count)
|
||||
{
|
||||
spJointEfforts[0].Value = dMaxM;
|
||||
spJointEfforts[1].Value = dMaxN;
|
||||
spJointEfforts[2].Value = dMaxT;
|
||||
bFoundLoadingCase = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//set back joint loading cases
|
||||
curSMJoint.SetJointNSAModuleLoadingCases(m_pCurSMRule, spJointLoadingCases);
|
||||
}
|
||||
|
||||
if (!bFoundLoadingCase)
|
||||
{
|
||||
//create loading case
|
||||
JointLoadingCase spJointLoadingCase = curSMJoint.CreateJointLoadingCase();
|
||||
|
||||
//create joint efforts
|
||||
JointEfforts spJointEfforts = curSMJoint.CreateJointEfforts();
|
||||
|
||||
JointEffort spEffortM = curSMJoint.CreateJointEffort();
|
||||
JointEffort spEffortN = curSMJoint.CreateJointEffort();
|
||||
JointEffort spEffortT = curSMJoint.CreateJointEffort();
|
||||
|
||||
spEffortM.Value = dMaxM;
|
||||
spEffortN.Value = dMaxN;
|
||||
spEffortT.Value = dMaxT;
|
||||
|
||||
spJointEfforts.Add(spEffortM);
|
||||
spJointEfforts.Add(spEffortN);
|
||||
spJointEfforts.Add(spEffortT);
|
||||
|
||||
spJointLoadingCase.JointEfforts = spJointEfforts;
|
||||
spJointLoadingCase.Name = sLoadingCaseName;
|
||||
|
||||
spJointLoadingCases.Add(spJointLoadingCase);
|
||||
|
||||
curSMJoint.SetJointNSAModuleLoadingCases(m_pCurSMRule, spJointLoadingCases);
|
||||
}
|
||||
}
|
||||
|
||||
private void setGridTorsorsValues(INodeStressAppModule m_pCurSMRule, int nRowIndex, string sLoadingCaseName)
|
||||
{
|
||||
IStressModuleJoint curSMJoint = m_pCurSMRule.Joint;
|
||||
|
||||
//get now the module loading cases
|
||||
IJointLoadingCases spJointLoadingCases = curSMJoint.GetJointNSAModuleLoadingCases(m_pCurSMRule);
|
||||
|
||||
if (null != spJointLoadingCases)
|
||||
{
|
||||
if ((int)spJointLoadingCases.Count > 0)
|
||||
{
|
||||
bool bFoundLoadingCase = false;
|
||||
|
||||
for (int i = 0; i < (int)spJointLoadingCases.Count; i++)
|
||||
{
|
||||
IJointLoadingCase spJointLoadingCase = spJointLoadingCases[i];
|
||||
IJointEfforts spJointEfforts = spJointLoadingCase.JointEfforts;
|
||||
|
||||
if ((null != spJointEfforts) && (spJointLoadingCase.Name == sLoadingCaseName))
|
||||
{
|
||||
if (3 == (int)spJointEfforts.Count)
|
||||
{
|
||||
bFoundLoadingCase = true;
|
||||
|
||||
m_dMaxM = (double)spJointEfforts[0].Value;
|
||||
m_dMaxN = (double)spJointEfforts[1].Value;
|
||||
m_dMaxV = (double)spJointEfforts[2].Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!bFoundLoadingCase)
|
||||
{
|
||||
m_dMaxM = 0;
|
||||
m_dMaxN = 0;
|
||||
m_dMaxV = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_dMaxM = 0;
|
||||
m_dMaxN = 0;
|
||||
m_dMaxV = 0;
|
||||
}
|
||||
}
|
||||
|
||||
//fill grid with found values
|
||||
axSimpleTorsors.set_ItemDoubleValue(nRowIndex, 0, m_dMaxM);
|
||||
axSimpleTorsors.set_ItemDoubleValue(nRowIndex, 1, m_dMaxN);
|
||||
axSimpleTorsors.set_ItemDoubleValue(nRowIndex, 2, m_dMaxV);
|
||||
|
||||
//set the values in the joint loading cases
|
||||
setJointTorsorsValues(m_CreatePlateDesign, m_dMaxM, m_dMaxN, m_dMaxV, sLoadingCaseName);
|
||||
}
|
||||
|
||||
private void setJoint(INodeStressAppModule m_pCurSMRule, int nNoRows)
|
||||
{
|
||||
IStressModuleJoint curSMJoint = m_pCurSMRule.Joint;
|
||||
|
||||
//get current units for Moment and Force
|
||||
IUnitsManager units = curSMJoint.Units;
|
||||
IUnit momentUnit = (AstSTEELAUTOMATIONLib.IUnit)new DSCROOTSCOMLib.UnitClass();
|
||||
IUnit forceUnit = (AstSTEELAUTOMATIONLib.IUnit)new DSCROOTSCOMLib.UnitClass();
|
||||
units.getUnitOfMoment(momentUnit);
|
||||
units.getUnitOfForce(forceUnit);
|
||||
|
||||
string strMomentUnit = "???", strForceUnit = "???";
|
||||
strMomentUnit = momentUnit.getSymbol();
|
||||
strForceUnit = forceUnit.getSymbol();
|
||||
|
||||
string strM_txt = AstCrtlDb.Instance.readUPS_PRP(41200);//"M"
|
||||
string strN_txt = AstCrtlDb.Instance.readUPS_PRP(41201);//"N"
|
||||
string strV_txt = AstCrtlDb.Instance.readUPS_PRP(41202);//"V"
|
||||
|
||||
string strCol_M_Name = strM_txt + " (" + strMomentUnit + ")";
|
||||
string strCol_N_Name = strN_txt + " (" + strForceUnit + ")";
|
||||
string strCol_V_Name = strV_txt + " (" + strForceUnit + ")";
|
||||
|
||||
//fill torsors grid
|
||||
axSimpleTorsors.DeleteAllItems();
|
||||
axSimpleTorsors.FixedRowCount = 1;
|
||||
axSimpleTorsors.ColumnCount = 3;
|
||||
axSimpleTorsors.RowCount = nNoRows + 1;
|
||||
|
||||
axSimpleTorsors.Height = 20 + (20 * nNoRows);
|
||||
axSimpleTorsors.ExpandToFit();
|
||||
|
||||
axSimpleTorsors.set_ItemTextValue(0, 0, strCol_M_Name);
|
||||
axSimpleTorsors.set_ItemTextValue(0, 1, strCol_N_Name);
|
||||
axSimpleTorsors.set_ItemTextValue(0, 2, strCol_V_Name);
|
||||
|
||||
//column "M"
|
||||
axSimpleTorsors.set_ColumnType(0, ASTCONTROLSLib.eColumnType.kEditBox); //kEditBox
|
||||
axSimpleTorsors.set_ColumnDataType(0, ASTCONTROLSLib.eCellDataType.kUnits); //kUnits
|
||||
axSimpleTorsors.set_ColumnUnits(0, ASTCONTROLSLib.eCellUnitType.kUnitMoment); //kUnitMoment
|
||||
|
||||
//column "N"
|
||||
axSimpleTorsors.set_ColumnType(1, ASTCONTROLSLib.eColumnType.kEditBox); //kEditBox
|
||||
axSimpleTorsors.set_ColumnDataType(1, ASTCONTROLSLib.eCellDataType.kUnits); //kUnits
|
||||
axSimpleTorsors.set_ColumnUnits(1, ASTCONTROLSLib.eCellUnitType.kUnitForce); //kUnitForce
|
||||
|
||||
//column "T"
|
||||
axSimpleTorsors.set_ColumnType(2, ASTCONTROLSLib.eColumnType.kEditBox); //kEditBox
|
||||
axSimpleTorsors.set_ColumnDataType(2, ASTCONTROLSLib.eCellDataType.kUnits); //kUnits
|
||||
axSimpleTorsors.set_ColumnUnits(2, ASTCONTROLSLib.eCellUnitType.kUnitForce); //kUnitForce
|
||||
|
||||
//check if the detailed torsors should be used
|
||||
if (true == curSMJoint.UseDetailedTorsors)
|
||||
{
|
||||
for (int j = 1; j <= nNoRows; j++)
|
||||
{
|
||||
axSimpleTorsors.EnableCell(j, 0, 0);
|
||||
axSimpleTorsors.EnableCell(j, 1, 0);
|
||||
axSimpleTorsors.EnableCell(j, 2, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int j = 1; j <= nNoRows; j++)
|
||||
{
|
||||
axSimpleTorsors.EnableCell(j, 0, 1);
|
||||
axSimpleTorsors.EnableCell(j, 1, 1);
|
||||
axSimpleTorsors.EnableCell(j, 2, 1);
|
||||
}
|
||||
}
|
||||
|
||||
setGridTorsorsValues(m_pCurSMRule, 1, "SimpleMaxTorsor");
|
||||
}
|
||||
|
||||
private void setEnable(int nRow, INodeStressAppModule m_pCurSMRule)
|
||||
{
|
||||
axSimpleTorsors.EnableCell(nRow, 0, 0);
|
||||
axSimpleTorsors.EnableCell(nRow, 1, 0);
|
||||
axSimpleTorsors.EnableCell(nRow, 2, 0);
|
||||
|
||||
if (false == m_pCurSMRule.Joint.UseDetailedTorsors)
|
||||
{
|
||||
axSimpleTorsors.EnableCell(nRow, 0, (short)1);
|
||||
axSimpleTorsors.EnableCell(nRow, 1, (short)1);
|
||||
axSimpleTorsors.EnableCell(nRow, 2, (short)1);
|
||||
}
|
||||
|
||||
axSimpleTorsors.Refresh();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="axSimpleTorsors.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAJQAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAABAAAAADAAEA+hcAADwHAAAAAAAACw==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,91 @@
|
||||
namespace SampleDesign
|
||||
{
|
||||
partial class Torsors
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Torsors));
|
||||
this.btnDelLoading = new System.Windows.Forms.Button();
|
||||
this.btnAddLoading = new System.Windows.Forms.Button();
|
||||
this.axTorsors = new AxASTCONTROLSLib.AxAstOCXGrid();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axTorsors)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnDelLoading
|
||||
//
|
||||
this.btnDelLoading.Image = ((System.Drawing.Image)(resources.GetObject("btnDelLoading.Image")));
|
||||
this.btnDelLoading.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.btnDelLoading.Location = new System.Drawing.Point(479, 249);
|
||||
this.btnDelLoading.Name = "btnDelLoading";
|
||||
this.btnDelLoading.Size = new System.Drawing.Size(24, 23);
|
||||
this.btnDelLoading.TabIndex = 10;
|
||||
this.btnDelLoading.UseVisualStyleBackColor = true;
|
||||
this.btnDelLoading.ClientSizeChanged += new System.EventHandler(this.btnDelLoading_Click);
|
||||
//
|
||||
// btnAddLoading
|
||||
//
|
||||
this.btnAddLoading.Image = ((System.Drawing.Image)(resources.GetObject("btnAddLoading.Image")));
|
||||
this.btnAddLoading.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
||||
this.btnAddLoading.Location = new System.Drawing.Point(451, 249);
|
||||
this.btnAddLoading.Name = "btnAddLoading";
|
||||
this.btnAddLoading.Size = new System.Drawing.Size(24, 23);
|
||||
this.btnAddLoading.TabIndex = 9;
|
||||
this.btnAddLoading.UseVisualStyleBackColor = true;
|
||||
this.btnAddLoading.Click += new System.EventHandler(this.btnAddLoading_Click);
|
||||
//
|
||||
// axTorsors
|
||||
//
|
||||
this.axTorsors.Enabled = true;
|
||||
this.axTorsors.Location = new System.Drawing.Point(3, 3);
|
||||
this.axTorsors.Name = "axTorsors";
|
||||
this.axTorsors.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axTorsors.OcxState")));
|
||||
this.axTorsors.Size = new System.Drawing.Size(499, 116);
|
||||
this.axTorsors.TabIndex = 8;
|
||||
this.axTorsors.OnGridCellEdited += new AxASTCONTROLSLib._DAstOCXGridEvents_OnGridCellEditedEventHandler(this.axTorsors_OnGridCellEdited);
|
||||
//
|
||||
// Torsors
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.Controls.Add(this.btnDelLoading);
|
||||
this.Controls.Add(this.btnAddLoading);
|
||||
this.Controls.Add(this.axTorsors);
|
||||
this.Name = "Torsors";
|
||||
this.Size = new System.Drawing.Size(150, 150);
|
||||
((System.ComponentModel.ISupportInitialize)(this.axTorsors)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btnDelLoading;
|
||||
private System.Windows.Forms.Button btnAddLoading;
|
||||
private AxASTCONTROLSLib.AxAstOCXGrid axTorsors;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,455 @@
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright 2015 Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Use of this software is subject to the terms of the Autodesk license
|
||||
// agreement provided at the time of installation or download, or which
|
||||
// otherwise accompanies this software in either electronic or hard copy form.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using AstSTEELAUTOMATIONLib;
|
||||
using Autodesk.AdvanceSteel.DotNetRoots.DatabaseAccess;
|
||||
|
||||
namespace SampleDesign
|
||||
{
|
||||
public partial class Torsors : UserControl
|
||||
{
|
||||
#region Constructor
|
||||
|
||||
public Torsors()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.Visible = false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region private members
|
||||
|
||||
private CreatePlateDesign m_JointDesignSample;
|
||||
|
||||
#endregion
|
||||
|
||||
public void setJoint(CreatePlateDesign pVal)
|
||||
{
|
||||
m_JointDesignSample = pVal;
|
||||
|
||||
if (m_JointDesignSample != null)
|
||||
callFillGridData(m_JointDesignSample);
|
||||
}
|
||||
|
||||
private void axTorsors_OnGridCellEdited(object sender, AxASTCONTROLSLib._DAstOCXGridEvents_OnGridCellEditedEvent e)
|
||||
{
|
||||
int nRow = axTorsors.GetFocusCellRow();
|
||||
int nCol = axTorsors.GetFocusCellColumn();
|
||||
|
||||
if (m_JointDesignSample != null)
|
||||
callGridCellEditedTorsors(m_JointDesignSample, nRow, nCol);
|
||||
}
|
||||
|
||||
private void btnAddLoading_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (m_JointDesignSample != null)
|
||||
callAddLoading(m_JointDesignSample);
|
||||
}
|
||||
|
||||
private void btnDelLoading_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (m_JointDesignSample != null)
|
||||
callDelLoading(m_JointDesignSample);
|
||||
}
|
||||
|
||||
private void callAddLoading(INodeStressAppModule m_pCurSMRule)
|
||||
{
|
||||
//add new loading in joint
|
||||
IStressModuleJoint curSMJoint = m_pCurSMRule.Joint;
|
||||
|
||||
//get now the module loading cases / efforts
|
||||
JointLoadingCases spJointLoadingCases = curSMJoint.GetJointNSAModuleLoadingCases(m_pCurSMRule);
|
||||
if (null != spJointLoadingCases)
|
||||
{
|
||||
JointLoadingCase spNewCase;
|
||||
JointEfforts spNewEfforts;
|
||||
JointEffort spNewEffortM, spNewEffortN, spNewEffortV;
|
||||
|
||||
spNewEffortM = curSMJoint.CreateJointEffort();
|
||||
spNewEffortN = curSMJoint.CreateJointEffort();
|
||||
spNewEffortV = curSMJoint.CreateJointEffort();
|
||||
spNewEfforts = curSMJoint.CreateJointEfforts();
|
||||
spNewCase = curSMJoint.CreateJointLoadingCase();
|
||||
|
||||
double newVal = 0.0;
|
||||
|
||||
spNewEffortM.Name = "M";
|
||||
spNewEffortM.Value = newVal;
|
||||
|
||||
spNewEffortN.Name = "N";
|
||||
spNewEffortN.Value = newVal;
|
||||
|
||||
spNewEffortV.Name = "V";
|
||||
spNewEffortV.Value = newVal;
|
||||
|
||||
spNewEfforts.Add(spNewEffortM);
|
||||
spNewEfforts.Add(spNewEffortN);
|
||||
spNewEfforts.Add(spNewEffortV);
|
||||
|
||||
string strLoadingName = createInternalLoadingName("-");
|
||||
|
||||
spNewCase.Name = strLoadingName;
|
||||
spNewCase.JointEfforts = spNewEfforts;
|
||||
|
||||
spJointLoadingCases.Add(spNewCase);
|
||||
curSMJoint.SetJointNSAModuleLoadingCases(m_pCurSMRule, spJointLoadingCases);
|
||||
}
|
||||
|
||||
|
||||
//add new line in grid
|
||||
string lineHeader = getNextLineHeader().ToString();
|
||||
axTorsors.InsertRow(ref lineHeader, axTorsors.RowCount - 1);
|
||||
|
||||
//description
|
||||
axTorsors.set_ItemTextValue(axTorsors.RowCount - 1, 1, "-");
|
||||
//M
|
||||
axTorsors.set_ItemDoubleValue(axTorsors.RowCount - 1, 2, 0);
|
||||
//N
|
||||
axTorsors.set_ItemDoubleValue(axTorsors.RowCount - 1, 3, 0);
|
||||
//V
|
||||
axTorsors.set_ItemDoubleValue(axTorsors.RowCount - 1, 4, 0);
|
||||
}
|
||||
|
||||
private void callDelLoading(INodeStressAppModule m_pCurSMRule)
|
||||
{
|
||||
int selectedRow = axTorsors.GetFocusCellRow();
|
||||
|
||||
if (selectedRow > (axTorsors.FixedRowCount - 1))
|
||||
{
|
||||
//get the real index of the torsor in the NSA module data
|
||||
int realTorsorIndex = getTorsorIndex(selectedRow, 0);
|
||||
if (-1 == realTorsorIndex)
|
||||
return;
|
||||
|
||||
IStressModuleJoint curSMJoint = m_pCurSMRule.Joint;
|
||||
//get now the module loading cases / efforts
|
||||
IJointLoadingCases spJointLoadingCases = curSMJoint.GetJointNSAModuleLoadingCases(m_pCurSMRule);
|
||||
|
||||
if (null != spJointLoadingCases)
|
||||
{
|
||||
if ((int)spJointLoadingCases.Count > 0)
|
||||
{
|
||||
JointLoadingCases spNewCases = curSMJoint.CreateJointLoadingCases();
|
||||
|
||||
if (null != spNewCases)
|
||||
{
|
||||
for (int i = 0; i < (int)spJointLoadingCases.Count; i++)
|
||||
{
|
||||
if (i != realTorsorIndex) //remove selected torsor
|
||||
{
|
||||
JointLoadingCase spOldCase = spJointLoadingCases[i];
|
||||
spNewCases.Add(spOldCase);
|
||||
}
|
||||
}
|
||||
|
||||
//set back the remaining torsors
|
||||
curSMJoint.SetJointNSAModuleLoadingCases(m_pCurSMRule, spNewCases);
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
else
|
||||
return;
|
||||
|
||||
axTorsors.DeleteRow(selectedRow);
|
||||
}
|
||||
}
|
||||
|
||||
private void callGridCellEditedTorsors(INodeStressAppModule m_pCurSMRule, int nRow, int nCol)
|
||||
{
|
||||
//get the real index of the torsor in the NSA module data
|
||||
int realTorsorIndex = getTorsorIndex(nRow, nCol);
|
||||
if (-1 == realTorsorIndex)
|
||||
return;
|
||||
|
||||
IStressModuleJoint curSMJoint = m_pCurSMRule.Joint;
|
||||
|
||||
//get now the module loading cases
|
||||
try
|
||||
{
|
||||
JointLoadingCases spJointLoadingCases = curSMJoint.GetJointNSAModuleLoadingCases(m_pCurSMRule);
|
||||
|
||||
if (null != spJointLoadingCases)
|
||||
{
|
||||
if ((int)spJointLoadingCases.Count > 0)
|
||||
{
|
||||
IJointLoadingCase spJointLoadingCase = spJointLoadingCases[realTorsorIndex];
|
||||
|
||||
string strCaseName = spJointLoadingCase.Name;
|
||||
IJointEfforts spJointEfforts = spJointLoadingCase.JointEfforts;
|
||||
|
||||
if (null != spJointEfforts)
|
||||
{
|
||||
if (3 == (int)spJointEfforts.Count)
|
||||
{
|
||||
IJointEffort spEffortM, spEffortN, spEffortV; //M, N, V
|
||||
|
||||
spEffortM = spJointEfforts[0];
|
||||
spEffortN = spJointEfforts[1];
|
||||
spEffortV = spJointEfforts[2];
|
||||
|
||||
if (1 == nCol) // "Description" was modified
|
||||
{
|
||||
string strNew = axTorsors.get_ItemTextValue(nRow, nCol);
|
||||
spJointLoadingCase.Name = createInternalLoadingName(strNew);
|
||||
}
|
||||
else // "M", "N" or "V" modified
|
||||
{
|
||||
double dfNew = axTorsors.get_ItemDoubleValue(nRow, nCol);
|
||||
if (2 == nCol) // "M"
|
||||
spEffortM.Value= dfNew;
|
||||
if (3 == nCol) // "N"
|
||||
spEffortN.Value = dfNew;
|
||||
if (4 == nCol) // "V"
|
||||
spEffortV.Value = dfNew;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//set back joint loading cases
|
||||
curSMJoint.SetJointNSAModuleLoadingCases(m_pCurSMRule, spJointLoadingCases);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.Diagnostics.Debug.Write(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void callFillGridData(INodeStressAppModule m_pCurSMRule)
|
||||
{
|
||||
//fill torsors grid
|
||||
axTorsors.DeleteAllItems();
|
||||
axTorsors.RowCount = 1;
|
||||
axTorsors.ColumnCount = 5;
|
||||
axTorsors.FixedRowCount = 1;
|
||||
axTorsors.FixedColumnCount = 1;
|
||||
|
||||
IStressModuleJoint curSMJoint = m_pCurSMRule.Joint;
|
||||
|
||||
//get current units for Moment and Force
|
||||
IUnitsManager units = curSMJoint.Units;
|
||||
IUnit momentUnit = (IUnit)(new DSCROOTSCOMLib.UnitClass());
|
||||
IUnit forceUnit = (IUnit)(new DSCROOTSCOMLib.UnitClass());
|
||||
units.getUnitOfMoment(momentUnit);
|
||||
units.getUnitOfForce(forceUnit);
|
||||
|
||||
string strMomentUnit = "???", strForceUnit = "???";
|
||||
strMomentUnit = momentUnit.getSymbol();
|
||||
strForceUnit = forceUnit.getSymbol();
|
||||
|
||||
string strM_txt = AstCrtlDb.Instance.readUPS_PRP(41200);//"M"
|
||||
string strN_txt = AstCrtlDb.Instance.readUPS_PRP(41201);//"N"
|
||||
string strV_txt = AstCrtlDb.Instance.readUPS_PRP(41202);//"V"
|
||||
|
||||
string strCol_M_Name = strM_txt + " (" + strMomentUnit + ")";
|
||||
string strCol_N_Name = strN_txt + " (" + strForceUnit + ")";
|
||||
string strCol_V_Name = strV_txt + " (" + strForceUnit + ")";
|
||||
|
||||
string strIndexName = "Case", strDescriptionName = "Name";
|
||||
strDescriptionName = AstCrtlDb.Instance.readUPS_PRP(147);
|
||||
strIndexName = AstCrtlDb.Instance.readUPS_PRP(146);
|
||||
|
||||
axTorsors.set_ItemTextValue(0, 0, strIndexName);
|
||||
axTorsors.set_ItemTextValue(0, 1, strDescriptionName);
|
||||
axTorsors.set_ItemTextValue(0, 2, strCol_M_Name);
|
||||
axTorsors.set_ItemTextValue(0, 3, strCol_N_Name);
|
||||
axTorsors.set_ItemTextValue(0, 4, strCol_V_Name);
|
||||
|
||||
axTorsors.set_ColumnWidth(0, 50);
|
||||
axTorsors.set_ColumnWidth(1, 95);
|
||||
axTorsors.set_ColumnWidth(2, 50);
|
||||
axTorsors.set_ColumnWidth(3, 50);
|
||||
axTorsors.set_ColumnWidth(4, 50);
|
||||
|
||||
//column "Description"
|
||||
axTorsors.set_ColumnType(1, ASTCONTROLSLib.eColumnType.kEditBox); //kEditBox
|
||||
axTorsors.set_ColumnDataType(1, ASTCONTROLSLib.eCellDataType.kString); //kString
|
||||
|
||||
//column "M"
|
||||
axTorsors.set_ColumnType(2, ASTCONTROLSLib.eColumnType.kEditBox); //kEditBox
|
||||
axTorsors.set_ColumnDataType(2, ASTCONTROLSLib.eCellDataType.kUnits); //kUnits
|
||||
axTorsors.set_ColumnUnits(2, ASTCONTROLSLib.eCellUnitType.kUnitMoment); //kUnitMoment
|
||||
|
||||
//column "N"
|
||||
axTorsors.set_ColumnType(3, ASTCONTROLSLib.eColumnType.kEditBox); //kEditBox
|
||||
axTorsors.set_ColumnDataType(3, ASTCONTROLSLib.eCellDataType.kUnits); //kUnits
|
||||
axTorsors.set_ColumnUnits(3, ASTCONTROLSLib.eCellUnitType.kUnitForce); //kUnitForce
|
||||
|
||||
//column "V"
|
||||
axTorsors.set_ColumnType(4, ASTCONTROLSLib.eColumnType.kEditBox); //kEditBox
|
||||
axTorsors.set_ColumnDataType(4, ASTCONTROLSLib.eCellDataType.kUnits); //kUnits
|
||||
axTorsors.set_ColumnUnits(4, ASTCONTROLSLib.eCellUnitType.kUnitForce); //kUnitForce
|
||||
|
||||
|
||||
//get now the module loading cases
|
||||
IJointLoadingCases spJointLoadingCases = curSMJoint.GetJointNSAModuleLoadingCases(m_pCurSMRule);
|
||||
|
||||
if (null != spJointLoadingCases)
|
||||
{
|
||||
if ((int)spJointLoadingCases.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < (int)spJointLoadingCases.Count; i++)
|
||||
{
|
||||
IJointLoadingCase spJointLoadingCase = spJointLoadingCases[i];
|
||||
IJointEfforts spJointEfforts = spJointLoadingCase.JointEfforts;
|
||||
string strCaseName = spJointLoadingCase.Name;
|
||||
|
||||
if ((null != spJointEfforts) &&(strCaseName != "SimpleMaxTorsor"))
|
||||
{
|
||||
if (3 == (int)spJointEfforts.Count)
|
||||
{
|
||||
JointEffort spEffortM, spEffortN, spEffortV; //M, N, V
|
||||
double dfEffM, dfEffN, dfEffV;
|
||||
|
||||
spEffortM = spJointEfforts[0];
|
||||
spEffortN = spJointEfforts[1];
|
||||
spEffortV = spJointEfforts[2];
|
||||
|
||||
dfEffM = (double)spEffortM.Value;
|
||||
dfEffN = (double)spEffortN.Value;
|
||||
dfEffV = (double)spEffortV.Value;
|
||||
|
||||
//add new line in grid
|
||||
string strLineHeader = getNextLineHeader().ToString();
|
||||
axTorsors.InsertRow(ref strLineHeader, axTorsors.RowCount - 1);
|
||||
|
||||
//description
|
||||
axTorsors.set_ItemTextValue(axTorsors.RowCount - 1, 1, getUserLoadingName(strCaseName));
|
||||
//M
|
||||
axTorsors.set_ItemDoubleValue(axTorsors.RowCount - 1, 2, dfEffM);
|
||||
//N
|
||||
axTorsors.set_ItemDoubleValue(axTorsors.RowCount - 1, 3, dfEffN);
|
||||
//T
|
||||
axTorsors.set_ItemDoubleValue(axTorsors.RowCount - 1, 4, dfEffV);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
axTorsors.AutoSize();
|
||||
axTorsors.GridBkColor = SystemColors.Window;
|
||||
}
|
||||
|
||||
private long getNextLineHeader()
|
||||
{
|
||||
long nextLineNumber = 0;
|
||||
|
||||
//add a line with the next largest number
|
||||
long existingMax = 0;
|
||||
|
||||
nextLineNumber = axTorsors.RowCount;
|
||||
|
||||
//get the existing max number
|
||||
long rowCount = axTorsors.RowCount;
|
||||
if (rowCount > 1)
|
||||
{
|
||||
for (int i = 1; i < rowCount; i++)
|
||||
{
|
||||
int thisVal = 0;
|
||||
thisVal = int.Parse(axTorsors.get_ItemTextValue(i, 0));
|
||||
if (thisVal > existingMax)
|
||||
existingMax = thisVal;
|
||||
}
|
||||
}
|
||||
|
||||
if (existingMax >= axTorsors.RowCount)
|
||||
nextLineNumber = existingMax + 1;
|
||||
|
||||
return nextLineNumber;
|
||||
}
|
||||
|
||||
private int getTorsorIndex(int gridRow, int gridCol)
|
||||
{
|
||||
int result = -1;
|
||||
|
||||
if (m_JointDesignSample != null)
|
||||
result = callGetTorsorsIndex(m_JointDesignSample, gridRow, gridCol);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private int callGetTorsorsIndex(INodeStressAppModule m_pCurSMRule, int gridRow, int gridCol)
|
||||
{
|
||||
int result = -1;
|
||||
|
||||
IStressModuleJoint curSMJoint = m_pCurSMRule.Joint;
|
||||
|
||||
//get now the module loading cases
|
||||
IJointLoadingCases spJointLoadingCases = curSMJoint.GetJointNSAModuleLoadingCases(m_pCurSMRule);
|
||||
|
||||
if (null != spJointLoadingCases)
|
||||
{
|
||||
if ((int)spJointLoadingCases.Count > 0)
|
||||
{
|
||||
int nLocatingIndex = 0;
|
||||
|
||||
for (int i = 0; i < (int)spJointLoadingCases.Count; i++)
|
||||
{
|
||||
JointLoadingCase spJointLoadingCase = spJointLoadingCases[i];
|
||||
JointEfforts spJointEfforts = spJointLoadingCase.JointEfforts;
|
||||
|
||||
if ((null != spJointEfforts) && (spJointLoadingCase.Name != "SimpleMaxTorsor"))
|
||||
{
|
||||
if ((gridRow - axTorsors.FixedRowCount) == nLocatingIndex) //found the index we want
|
||||
{
|
||||
result = i;
|
||||
}
|
||||
nLocatingIndex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private string createInternalLoadingName(string strLoadingName)
|
||||
{
|
||||
string strInternalName = string.Format("Beam {0:D} #@#@#", 1);
|
||||
strInternalName = strInternalName + strLoadingName;
|
||||
return strInternalName;
|
||||
}
|
||||
|
||||
private string getUserLoadingName(string strInternalName)
|
||||
{
|
||||
int nStartIndex = 12;
|
||||
bool bSeparatorExists = strInternalName.Contains("#@#@#");
|
||||
bool bLongSeparatorExists = strInternalName.Contains("#@#@#@#");
|
||||
if (bLongSeparatorExists)
|
||||
{
|
||||
bSeparatorExists = true;
|
||||
nStartIndex = 14;
|
||||
}
|
||||
if (bSeparatorExists)
|
||||
return strInternalName.Substring(nStartIndex);
|
||||
else
|
||||
return strInternalName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="btnDelLoading.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAIhJREFUWEftlNEK
|
||||
wCAIRf10/3zNQBBpyx5uEdxosEHsHo9uIlw0QAM0cIOBR+Tdh5aF+3UIoZdfhoDZmkGoaoeEWvqC2Nqi
|
||||
COFVwyvPWmPw9nCDiRbs3oCgvY8vz3Pgz3CI3PsRFAziL9xBYCYq4Q4B+ypU6z8YGMTqlMPmYRWE52mA
|
||||
BmhgZqABX42IDaWvyEAAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnAddLoading.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAALZJREFUWEftlVEK
|
||||
wCAIQD16R+tmLQmXRmWQ/oSCMNbA11McQEQYCANhQDGQUiq7dBeIxXPO08QzgFLTMQigTILOXCE0gFac
|
||||
0sGEBkDz4WZhB0BdwRlp8+AQGgAWl20wHsodgCyOBnqaGVkBjMWpHeYQOkC7dQfAFnAbl3OxAqC+z/YD
|
||||
vusQrwCM61hOPm+BHMbL+1eR/77nG48/jzNg2H+k1/+G442NAc4UGms/KxpfhYEw8IiBD3KjPijZGMVL
|
||||
AAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="axTorsors.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAJQAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAABAAAAADAAEAkzMAAP0LAAAAAAAACw==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,141 @@
|
||||
namespace SteelConnectionsJointExample
|
||||
{
|
||||
partial class Page1
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Page1));
|
||||
this.axAstUnitPlateThickness = new AxASTCONTROLSLib.AxAstUnitControl();
|
||||
this.axAstUnitPlateLength = new AxASTCONTROLSLib.AxAstUnitControl();
|
||||
this.axAstUnitPlateWidth = new AxASTCONTROLSLib.AxAstUnitControl();
|
||||
this.axAstUnitCutBack = new AxASTCONTROLSLib.AxAstUnitControl();
|
||||
this.axAnchor = new AxASTCONTROLSLib.AxBoltStandards();
|
||||
this.axAstControls1 = new AxASTCONTROLSLib.AxAstControls();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstUnitPlateThickness)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstUnitPlateLength)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstUnitPlateWidth)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstUnitCutBack)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAnchor)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstControls1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// axAstUnitPlateThickness
|
||||
//
|
||||
this.axAstUnitPlateThickness.Location = new System.Drawing.Point(13, 13);
|
||||
this.axAstUnitPlateThickness.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.axAstUnitPlateThickness.Name = "axAstUnitPlateThickness";
|
||||
this.axAstUnitPlateThickness.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAstUnitPlateThickness.OcxState")));
|
||||
this.axAstUnitPlateThickness.Size = new System.Drawing.Size(281, 29);
|
||||
this.axAstUnitPlateThickness.TabIndex = 0;
|
||||
this.axAstUnitPlateThickness.ValueChanged += new System.EventHandler(this.axAstUnitPlateThickness_ValueChanged);
|
||||
//
|
||||
// axAstUnitPlateLength
|
||||
//
|
||||
this.axAstUnitPlateLength.Location = new System.Drawing.Point(13, 42);
|
||||
this.axAstUnitPlateLength.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.axAstUnitPlateLength.Name = "axAstUnitPlateLength";
|
||||
this.axAstUnitPlateLength.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAstUnitPlateLength.OcxState")));
|
||||
this.axAstUnitPlateLength.Size = new System.Drawing.Size(281, 29);
|
||||
this.axAstUnitPlateLength.TabIndex = 1;
|
||||
this.axAstUnitPlateLength.ValueChanged += new System.EventHandler(this.axAstUnitPlateLength_ValueChanged);
|
||||
//
|
||||
// axAstUnitPlateWidth
|
||||
//
|
||||
this.axAstUnitPlateWidth.Location = new System.Drawing.Point(13, 71);
|
||||
this.axAstUnitPlateWidth.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.axAstUnitPlateWidth.Name = "axAstUnitPlateWidth";
|
||||
this.axAstUnitPlateWidth.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAstUnitPlateWidth.OcxState")));
|
||||
this.axAstUnitPlateWidth.Size = new System.Drawing.Size(281, 29);
|
||||
this.axAstUnitPlateWidth.TabIndex = 2;
|
||||
this.axAstUnitPlateWidth.ValueChanged += new System.EventHandler(this.axAstUnitPlateWidth_ValueChanged);
|
||||
//
|
||||
// axAstUnitCutBack
|
||||
//
|
||||
this.axAstUnitCutBack.Location = new System.Drawing.Point(13, 100);
|
||||
this.axAstUnitCutBack.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.axAstUnitCutBack.Name = "axAstUnitCutBack";
|
||||
this.axAstUnitCutBack.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAstUnitCutBack.OcxState")));
|
||||
this.axAstUnitCutBack.Size = new System.Drawing.Size(281, 29);
|
||||
this.axAstUnitCutBack.TabIndex = 3;
|
||||
this.axAstUnitCutBack.ValueChanged += new System.EventHandler(this.axAstUnitCutBack_ValueChanged);
|
||||
//
|
||||
// axAnchor
|
||||
//
|
||||
this.axAnchor.Location = new System.Drawing.Point(13, 130);
|
||||
this.axAnchor.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.axAnchor.Name = "axAnchor";
|
||||
this.axAnchor.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAnchor.OcxState")));
|
||||
this.axAnchor.Size = new System.Drawing.Size(305, 151);
|
||||
this.axAnchor.TabIndex = 4;
|
||||
this.axAnchor.BoltChanged += new System.EventHandler(this.axAnchor_BoltChanged);
|
||||
//
|
||||
// axAstControls1
|
||||
//
|
||||
this.axAstControls1.Location = new System.Drawing.Point(330, 17);
|
||||
this.axAstControls1.Name = "axAstControls1";
|
||||
this.axAstControls1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAstControls1.OcxState")));
|
||||
this.axAstControls1.Size = new System.Drawing.Size(269, 243);
|
||||
this.axAstControls1.TabIndex = 5;
|
||||
//
|
||||
// Page1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(624, 354);
|
||||
this.Controls.Add(this.axAstControls1);
|
||||
this.Controls.Add(this.axAnchor);
|
||||
this.Controls.Add(this.axAstUnitCutBack);
|
||||
this.Controls.Add(this.axAstUnitPlateWidth);
|
||||
this.Controls.Add(this.axAstUnitPlateLength);
|
||||
this.Controls.Add(this.axAstUnitPlateThickness);
|
||||
this.Enabled = false;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.Name = "Page1";
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.Text = "Page1";
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstUnitPlateThickness)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstUnitPlateLength)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstUnitPlateWidth)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstUnitCutBack)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAnchor)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.axAstControls1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private AxASTCONTROLSLib.AxAstUnitControl axAstUnitPlateThickness;
|
||||
private AxASTCONTROLSLib.AxAstUnitControl axAstUnitPlateLength;
|
||||
private AxASTCONTROLSLib.AxAstUnitControl axAstUnitPlateWidth;
|
||||
private AxASTCONTROLSLib.AxAstUnitControl axAstUnitCutBack;
|
||||
private AxASTCONTROLSLib.AxBoltStandards axAnchor;
|
||||
private AxASTCONTROLSLib.AxAstControls axAstControls1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright 2015 Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Use of this software is subject to the terms of the Autodesk license
|
||||
// agreement provided at the time of installation or download, or which
|
||||
// otherwise accompanies this software in either electronic or hard copy form.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
using Autodesk.AdvanceSteel.DotNetRoots;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using AstSTEELAUTOMATIONLib;
|
||||
|
||||
namespace SteelConnectionsJointExample
|
||||
{
|
||||
public partial class Page1 : Form
|
||||
{
|
||||
private CreatePlate m_CurRule = null;
|
||||
|
||||
private const int WS_CHILD = 0x40000000;
|
||||
|
||||
public Page1()
|
||||
{
|
||||
InitializeComponent();
|
||||
ScaleAxControls();
|
||||
}
|
||||
|
||||
public Page1(CreatePlate rule)
|
||||
{
|
||||
InitializeComponent();
|
||||
ScaleAxControls();
|
||||
|
||||
m_CurRule = rule;
|
||||
|
||||
axAstUnitPlateThickness.DoubleValue = m_CurRule.m_dPlateThickness;
|
||||
axAstUnitPlateLength.DoubleValue = m_CurRule.m_dPlateLength;
|
||||
axAstUnitPlateWidth.DoubleValue = m_CurRule.m_dPlateWidth;
|
||||
axAstUnitCutBack.DoubleValue = m_CurRule.m_dCutBack;
|
||||
|
||||
axAnchor.BoltStandard = m_CurRule.m_sAnchorType;
|
||||
axAnchor.BoltMaterial = m_CurRule.m_sAnchorMaterial;
|
||||
axAnchor.BoltSet = m_CurRule.m_sAnchorAssembly;
|
||||
axAnchor.BoltDiameter = m_CurRule.m_dAnchorDiameter;
|
||||
axAnchor.AnchorLength = m_CurRule.m_dAnchorLength;
|
||||
}
|
||||
|
||||
protected override CreateParams CreateParams
|
||||
{
|
||||
get
|
||||
{
|
||||
CreateParams cp = base.CreateParams;
|
||||
cp.Style = cp.Style | WS_CHILD;
|
||||
return cp;
|
||||
}
|
||||
}
|
||||
|
||||
private void axAstUnitPlateThickness_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
// TODO: Add your message handler code here
|
||||
if (m_CurRule != null)
|
||||
{
|
||||
IJoint curJoint = m_CurRule.Joint;
|
||||
if (axAstUnitPlateThickness.DoubleValue != m_CurRule.m_dPlateThickness)
|
||||
{
|
||||
m_CurRule.m_dPlateThickness = axAstUnitPlateThickness.DoubleValue;
|
||||
curJoint.SaveData(m_CurRule);
|
||||
curJoint.UpdateDrivenConstruction();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void axAstUnitPlateLength_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
// TODO: Add your message handler code here
|
||||
if (m_CurRule != null)
|
||||
{
|
||||
IJoint curJoint = m_CurRule.Joint;
|
||||
if (axAstUnitPlateLength.DoubleValue != m_CurRule.m_dPlateLength)
|
||||
{
|
||||
m_CurRule.m_dPlateLength = axAstUnitPlateLength.DoubleValue;
|
||||
curJoint.SaveData(m_CurRule);
|
||||
curJoint.UpdateDrivenConstruction();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void axAstUnitPlateWidth_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
// TODO: Add your message handler code here
|
||||
if (m_CurRule != null)
|
||||
{
|
||||
IJoint curJoint = m_CurRule.Joint;
|
||||
if (axAstUnitPlateWidth.DoubleValue != m_CurRule.m_dPlateWidth)
|
||||
{
|
||||
m_CurRule.m_dPlateWidth = axAstUnitPlateWidth.DoubleValue;
|
||||
curJoint.SaveData(m_CurRule);
|
||||
curJoint.UpdateDrivenConstruction();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void axAstUnitCutBack_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
// TODO: Add your message handler code here
|
||||
if (m_CurRule != null)
|
||||
{
|
||||
IJoint curJoint = m_CurRule.Joint;
|
||||
if (axAstUnitCutBack.DoubleValue != m_CurRule.m_dCutBack)
|
||||
{
|
||||
m_CurRule.m_dCutBack = axAstUnitCutBack.DoubleValue;
|
||||
curJoint.SaveData(m_CurRule); //Save data to joint
|
||||
curJoint.UpdateDrivenConstruction(); //Update the joint
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void axAnchor_BoltChanged(object sender, EventArgs e)
|
||||
{
|
||||
// TODO: Add your message handler code here
|
||||
if (m_CurRule != null)
|
||||
{
|
||||
IJoint curJoint = m_CurRule.Joint;
|
||||
|
||||
if (axAnchor.AnchorLength != m_CurRule.m_dAnchorLength ||
|
||||
axAnchor.BoltDiameter != m_CurRule.m_dAnchorDiameter ||
|
||||
axAnchor.BoltMaterial != m_CurRule.m_sAnchorMaterial ||
|
||||
axAnchor.BoltStandard != m_CurRule.m_sAnchorType ||
|
||||
axAnchor.BoltSet != m_CurRule.m_sAnchorAssembly)
|
||||
{
|
||||
m_CurRule.m_sAnchorType = axAnchor.BoltStandard;
|
||||
m_CurRule.m_sAnchorMaterial = axAnchor.BoltMaterial;
|
||||
m_CurRule.m_sAnchorAssembly = axAnchor.BoltSet;
|
||||
m_CurRule.m_dAnchorDiameter = axAnchor.BoltDiameter;
|
||||
m_CurRule.m_dAnchorLength = axAnchor.AnchorLength;
|
||||
|
||||
curJoint.SaveData(m_CurRule); //Save data to joint
|
||||
curJoint.UpdateDrivenConstruction(); //Update the joint
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ScaleAxControls()
|
||||
{
|
||||
axAstUnitPlateThickness.Location = AstDpi.Scale(axAstUnitPlateThickness.Location);
|
||||
axAstUnitPlateLength.Location = AstDpi.Scale(axAstUnitPlateLength.Location);
|
||||
axAstUnitPlateWidth.Location = AstDpi.Scale(axAstUnitPlateWidth.Location);
|
||||
axAstUnitCutBack.Location = AstDpi.Scale(axAstUnitCutBack.Location);
|
||||
axAnchor.Location = AstDpi.Scale(axAnchor.Location);
|
||||
axAstControls1.Location = AstDpi.Scale(axAstControls1.Location);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="axAstUnitPlateThickness.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAZAAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAAE8AAAADAAEAPBcAAGYCAABEAAAAAANS4wuRj84RneMAqgBLuFEBAAAAkAEg
|
||||
SAEAFE1pY3Jvc29mdCBTYW5zIFNlcmlmAQAA////AOCTBACCAAAACw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="axAstUnitPlateLength.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAZAAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAAE8AAAADAAEAPBcAAGYCAABEAAAAAANS4wuRj84RneMAqgBLuFEBAAAAkAEg
|
||||
SAEAFE1pY3Jvc29mdCBTYW5zIFNlcmlmAQAA////AOGTBACCAAAACw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="axAstUnitPlateWidth.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAZAAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAAE8AAAADAAEAPBcAAGYCAABEAAAAAANS4wuRj84RneMAqgBLuFEBAAAAkAEg
|
||||
SAEAFE1pY3Jvc29mdCBTYW5zIFNlcmlmAQAA////AOKTBACCAAAACw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="axAstUnitCutBack.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAZAAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAAE8AAAADAAEAPBcAAGYCAABEAAAAAANS4wuRj84RneMAqgBLuFEBAAAAkAEg
|
||||
SAEAFE1pY3Jvc29mdCBTYW5zIFNlcmlmAQAA////AOOTBACCAAAACw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="axAnchor.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAArgAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAAJkAAAADAAEAOBkAAHwMAABEAAAAAANS4wuRj84RneMAqgBLuFEBAAAAkAEg
|
||||
SAEAFE1pY3Jvc29mdCBTYW5zIFNlcmlmAQAAAkPICQAAdngBAHd4AQB4eAEAAAAAAAAAMEACAP/+/xBK
|
||||
AC0AQQBuAGsAZQByACAAUgBpAG4AZwBiAHUAYwBoAP/+/wM0AC4ANgAAAAAAACB8QM0JAAAL
|
||||
</value>
|
||||
</data>
|
||||
<data name="axAstControls1.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAKgAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAABUAAAADAAEAPhYAABgUAABAAAAAAW/tAAAL
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -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("SteelConnectionsJointExample")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Autodesk")]
|
||||
[assembly: AssemblyProduct("SteelConnectionsJointExample")]
|
||||
[assembly: AssemblyCopyright("Copyright © Autodesk 2015")]
|
||||
[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(true)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("e2d67290-4d6c-4a85-a02b-db93e642f9c9")]
|
||||
|
||||
// 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")]
|
||||
@@ -0,0 +1,99 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\StructuralConnectionsSDKSamples.Common.props" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x64</Platform>
|
||||
<ProjectGuid>{0D5537D0-19F6-40A0-B5C6-852210AE6983}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SteelConnectionsJointExample</RootNamespace>
|
||||
<AssemblyName>SteelConnectionsJointExample</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DotNetRoots">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\DotNetRoots.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AxInterop.ASTCONTROLSLib">
|
||||
<HintPath>$(ASInstallDir)\AxInterop.ASTCONTROLSLib.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Interop.AstSTEELAUTOMATIONLib5">
|
||||
<HintPath>$(ASInstallDir)\Interop.AstSTEELAUTOMATIONLib5.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Interop.DSCGEOMCOMLib">
|
||||
<HintPath>$(ASInstallDir)\Interop.DSCGEOMCOMLib.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Interop.DSCODBCCOMLib">
|
||||
<HintPath>$(ASInstallDir)\Interop.DSCODBCCOMLib.dll</HintPath>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CreatePlate.cs" />
|
||||
<Compile Include="Page1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Page1.Designer.cs">
|
||||
<DependentUpon>Page1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WCFMetadata Include="Service References\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Page1.resx">
|
||||
<DependentUpon>Page1.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -0,0 +1,16 @@
|
||||
CREATE TABLE [dbo].[RULE_CreatePlate]
|
||||
(
|
||||
[Key] INT NOT NULL,
|
||||
[Comment] NVARCHAR (64) NULL,
|
||||
[Section] NVARCHAR (128) NULL,
|
||||
[PlateThickness] FLOAT (53) NULL,
|
||||
[PlateLength] FLOAT (53) NULL,
|
||||
[PlateWidth] FLOAT (53) NULL,
|
||||
[CutBack] FLOAT (53) NULL,
|
||||
[AnchorMaterial] NVARCHAR (50) NULL,
|
||||
[AnchorType] NVARCHAR (50) NULL,
|
||||
[AnchorAssembly] NVARCHAR (50) NULL,
|
||||
[AnchorDiameter] FLOAT (53) NULL,
|
||||
[AnchorLength] FLOAT (53) NULL,
|
||||
[HoleTolerance] FLOAT (53) NULL
|
||||
)
|
||||
@@ -0,0 +1,674 @@
|
||||
using System;
|
||||
using Autodesk.AdvanceSteel.CADAccess;
|
||||
using Autodesk.AdvanceSteel.CADLink.Database;
|
||||
using Autodesk.AdvanceSteel.ConstructionTypes;
|
||||
using Autodesk.AdvanceSteel.Geometry;
|
||||
using Autodesk.AdvanceSteel.Modelling;
|
||||
using Autodesk.AdvanceSteel.DotNetRoots.DatabaseAccess;
|
||||
using Autodesk.AdvanceSteel.Profiles;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
|
||||
namespace SampleLapJoint
|
||||
{
|
||||
public class LapJoint : IRule
|
||||
{
|
||||
ObjectId _jointId;
|
||||
|
||||
// property sheet 1 - "Bolt arrangement"
|
||||
int _iNoBoltAlong;
|
||||
double _dIntermDistAlong;
|
||||
double _dEdgeDistAlong1;
|
||||
double _dEdgeDistAlong2;
|
||||
int _iLayoutAcross; // 0 = center, 1 = from side 1, 2 = from side 2
|
||||
int _iNoBoltAcross;
|
||||
double _dIntermDistAcross;
|
||||
double _dOffsetAcross;
|
||||
int _iStaggering; // 0 = none, 1 = side 1, 2 = side 2
|
||||
|
||||
// property sheet 2 - "Bolt parameter"
|
||||
double _dBoltDiameter;
|
||||
string _sBoltType;
|
||||
string _sBoltGrade;
|
||||
string _sBoltSet;
|
||||
int _iInvert;
|
||||
int _iBoltLocation;// 0 = site, 1 = shop
|
||||
|
||||
// members that not written on fillers
|
||||
Matrix3d _CS;
|
||||
Vector3d _vForward, _vSide, _vUp;
|
||||
Beam.eEnd _Beam2ShorteningEnd;
|
||||
Point3d _ptOrigin;
|
||||
|
||||
|
||||
public ObjectId JointId { get { return _jointId; } set { _jointId = value; } }
|
||||
|
||||
void IRule.CreateObjects()
|
||||
{
|
||||
//get the input objects
|
||||
IJoint jnt = DatabaseManager.Open(JointId) as IJoint;
|
||||
IEnumerable<FilerObject> input = jnt.InputObjects;
|
||||
|
||||
//create an array that will contain all the objects created by the joint
|
||||
List<CreatedObjectInformation> arrCrOjbInfo = new List<CreatedObjectInformation>();
|
||||
|
||||
try
|
||||
{
|
||||
if (input.Count() == 2)
|
||||
{
|
||||
StraightBeam firstBeam = input.ElementAt(0) as StraightBeam;
|
||||
StraightBeam secBeam = input.ElementAt(1) as StraightBeam;
|
||||
|
||||
//verify some input condition(profile type and alignment)
|
||||
if (!verifyInputBeams(firstBeam, secBeam))
|
||||
throw new Exception("Input objects");
|
||||
|
||||
if (null != firstBeam)
|
||||
{
|
||||
// this is basically some data validation and preparation for avoiding many checks or problems later
|
||||
Point3d ptBeamStart = firstBeam.GetPointAtStart(0);
|
||||
Point3d ptBeamEnd = firstBeam.GetPointAtEnd(0);
|
||||
|
||||
computeNonFillersData(firstBeam, secBeam);
|
||||
|
||||
shortenSecondaryBeam(arrCrOjbInfo, secBeam);
|
||||
|
||||
if (0 == _iStaggering || 1 == _iNoBoltAcross)
|
||||
createBoltsWithoutStager(arrCrOjbInfo, firstBeam, secBeam);
|
||||
else
|
||||
createBoltsWithStager(arrCrOjbInfo, firstBeam, secBeam);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.Assert(false, ex.Message);
|
||||
}
|
||||
|
||||
//
|
||||
// created objects need to be set to the joint
|
||||
jnt.SetCreatedObjects(arrCrOjbInfo, true);
|
||||
}
|
||||
|
||||
void IRule.GetRulePages(IRuleUIBuilder builder)
|
||||
{
|
||||
// ids are the same as for Overlapping flat joint
|
||||
builder.SheetPromptId = 83088;
|
||||
builder.FirstPageBitmapIdx = 60728;
|
||||
|
||||
// property sheet 1 - "Bolt arrangement"
|
||||
int nId = builder.BuildRulePage(90559, -1, 60729);
|
||||
|
||||
|
||||
builder.AddTextBox(nId, "Number of along bolts", "_iNoBoltAlong", typeof(int));
|
||||
builder.AddTextBox(nId, "Intermediate along distance", "_dIntermDistAlong", typeof(double), Autodesk.AdvanceSteel.DotNetRoots.Units.Unit.eUnitType.kDistance);
|
||||
builder.AddTextBox(nId, "Edge distance member 1", "_dEdgeDistAlong1", typeof(double), Autodesk.AdvanceSteel.DotNetRoots.Units.Unit.eUnitType.kDistance);
|
||||
builder.AddTextBox(nId, "Edge distance member 2", "_dEdgeDistAlong2", typeof(double), Autodesk.AdvanceSteel.DotNetRoots.Units.Unit.eUnitType.kDistance);
|
||||
builder.AddSelectorCustom(nId, "Layout Across", "_iLayoutAcross", typeof(int), new string[] { "center", "from side 1", "from side 2" });
|
||||
builder.AddTextBox(nId, "Number of across bolts", "_iNoBoltAcross", typeof(int));
|
||||
builder.AddTextBox(nId, "Intermdediate across distance", "_dIntermDistAcross", typeof(double), Autodesk.AdvanceSteel.DotNetRoots.Units.Unit.eUnitType.kDistance);
|
||||
builder.AddTextBox(nId, "Offset","_dOffsetAcross", typeof(double), Autodesk.AdvanceSteel.DotNetRoots.Units.Unit.eUnitType.kDistance);
|
||||
builder.AddSelectorCustom(nId, "Staggering", "_iStaggering", typeof(int), new string[] { "none", "side 1", "side 2" });
|
||||
|
||||
|
||||
// property sheet 2 - "Bolt parameter"
|
||||
nId = builder.BuildRulePage(90041, -1, 60730);
|
||||
builder.AddTextBox(nId, "Diameter", "_dBoltDiameter", typeof(double), Autodesk.AdvanceSteel.DotNetRoots.Units.Unit.eUnitType.kDistance);
|
||||
builder.AddBoltSelector(nId, "Bolt properties label", "_sBoltType", "_sBoltGrade", "_dBoltDiameter", "_sBoltSet");
|
||||
builder.AddCheckBox(nId, "Invert", "_iInvert");
|
||||
builder.AddSelectorCustom(nId, "Bolt Location", "_iBoltLocation", typeof(int), new string[] { "site", "shop" });
|
||||
|
||||
}
|
||||
|
||||
string IRule.GetTableName()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
void IRule.Save(IFiler filer)
|
||||
{
|
||||
|
||||
filer.WriteItem(_iNoBoltAlong, "_iNoBoltAlong");
|
||||
filer.WriteItem(_dIntermDistAlong, "_dIntermDistAlong");
|
||||
filer.WriteItem(_dEdgeDistAlong1, "_dEdgeDistAlong1");
|
||||
filer.WriteItem(_dEdgeDistAlong2, "_dEdgeDistAlong2");
|
||||
filer.WriteItem(_iLayoutAcross, "_iLayoutAcross");
|
||||
filer.WriteItem(_iNoBoltAcross, "_iNoBoltAcross");
|
||||
filer.WriteItem(_dIntermDistAcross, "_dIntermDistAcross");
|
||||
filer.WriteItem(_dOffsetAcross, "_dOffsetAcross");
|
||||
filer.WriteItem(_iStaggering, "_iStaggering");
|
||||
|
||||
filer.WriteItem(_dBoltDiameter,"_dBoltDiameter");
|
||||
filer.WriteItem(_sBoltType,"_sBoltType");
|
||||
filer.WriteItem(_sBoltGrade,"_sBoltGrade");
|
||||
filer.WriteItem(_sBoltSet,"_sBoltSet");
|
||||
filer.WriteItem(_iInvert,"_iInvert");
|
||||
filer.WriteItem(_iBoltLocation,"_iBoltLocation");
|
||||
}
|
||||
|
||||
void IRule.Load(IFiler filer)
|
||||
{
|
||||
int version = filer.ReadVersion();
|
||||
|
||||
_iNoBoltAlong = (int)filer.ReadItem("_iNoBoltAlong");
|
||||
_dIntermDistAlong = (double)filer.ReadItem("_dIntermDistAlong");
|
||||
_dEdgeDistAlong1 = (double)filer.ReadItem("_dEdgeDistAlong1");
|
||||
_dEdgeDistAlong2 = (double)filer.ReadItem("_dEdgeDistAlong2");
|
||||
_iLayoutAcross = (int)filer.ReadItem("_iLayoutAcross");
|
||||
_iNoBoltAcross = (int)filer.ReadItem("_iNoBoltAcross");
|
||||
_dIntermDistAcross = (double)filer.ReadItem("_dIntermDistAcross");
|
||||
_dOffsetAcross = (double)filer.ReadItem("_dOffsetAcross");
|
||||
_iStaggering = (int)filer.ReadItem("_iStaggering");
|
||||
|
||||
|
||||
_dBoltDiameter = (double)filer.ReadItem("_dBoltDiameter");
|
||||
_sBoltType = (string)filer.ReadItem("_sBoltType");
|
||||
_sBoltGrade = (string)filer.ReadItem("_sBoltGrade");
|
||||
_sBoltSet = (string)filer.ReadItem("_sBoltSet");
|
||||
_iInvert = (int)filer.ReadItem("_iInvert");
|
||||
_iBoltLocation = (int)filer.ReadItem("_iBoltLocation");
|
||||
}
|
||||
|
||||
void IRule.Query(IUI ui)
|
||||
{
|
||||
eUIErrorCodes errCode;
|
||||
|
||||
ui.ClassFilter.AppendAcceptedBaseClass(FilerObject.eObjectType.kBeam);
|
||||
|
||||
FilerObject fObj1 = ui.SelectObject(666, false, out errCode);
|
||||
|
||||
FilerObject fObj2 = ui.SelectObject(666, false, out errCode);
|
||||
|
||||
if (null != fObj1 && null != fObj2)
|
||||
{
|
||||
IJoint jnt = DatabaseManager.Open(JointId) as IJoint;
|
||||
|
||||
if (null != jnt)
|
||||
{
|
||||
jnt.SetInputObjects(new FilerObject[] { fObj1, fObj2 }, new int[] { -1, -1 });
|
||||
}
|
||||
}
|
||||
|
||||
LoadDefaultValues();
|
||||
}
|
||||
|
||||
private void LoadDefaultValues()
|
||||
{
|
||||
// property sheet 1 - "Bolt arrangement"
|
||||
_iNoBoltAlong = 3;
|
||||
_dIntermDistAlong = 75;
|
||||
_dEdgeDistAlong1 = 50;
|
||||
_dEdgeDistAlong2 = 50;
|
||||
_iLayoutAcross = 0; // 0 = center, 1 = from side 1, 2 = from side 2
|
||||
_iNoBoltAcross = 3;
|
||||
_dIntermDistAcross = 75;
|
||||
_dOffsetAcross = 0;
|
||||
_iStaggering = 0; // 0 = none, 1 = side 1, 2 = side 2
|
||||
|
||||
|
||||
// property sheet 2 - "Bolt parameter"
|
||||
string boltStandard = "Norm"; // bolt type
|
||||
string boltSet = "Garnitur"; //bolt grade
|
||||
string boltMaterial = "Material"; //assembly
|
||||
string boltsDiameter = "Diameter";
|
||||
_sBoltType = AstorSettings.Instance.GetDefaultString(401, boltStandard);
|
||||
_sBoltSet = AstorSettings.Instance.GetDefaultString(401, boltSet);
|
||||
_sBoltGrade = AstorSettings.Instance.GetDefaultString(401, boltMaterial);
|
||||
_dBoltDiameter = AstorSettings.Instance.GetDefaultDouble(401, boltsDiameter); ;
|
||||
_iInvert = 0;
|
||||
_iBoltLocation = 0; // 0 = site, 1 = shop
|
||||
}
|
||||
|
||||
private bool verifyInputBeams(Beam beam1, Beam beam2)
|
||||
{
|
||||
if (null == beam1 || null == beam2)
|
||||
return false;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// verify if the input beams are both "F" profiles
|
||||
ProfileType profType;
|
||||
string strClsName1, strRTLName1,
|
||||
strClsName2, strRTLName2;
|
||||
|
||||
profType = beam1.GetProfType();
|
||||
profType.GetSectionClass(out strClsName1, out strRTLName1);
|
||||
|
||||
profType = beam2.GetProfType();
|
||||
profType.GetSectionClass(out strClsName2, out strRTLName2);
|
||||
|
||||
if (("F" != strClsName1) || ("F" != strClsName2))
|
||||
return false;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// verify if the input beams are parallel
|
||||
|
||||
Matrix3d beam1MidCS, beam2MidCS;
|
||||
Vector3d xAxis1, xAxis2, yAxis1, yAxis2, zAxis1, zAxis2;
|
||||
Point3d origPct1, origPct2;
|
||||
|
||||
beam1MidCS = beam1.PhysCSMid;
|
||||
beam1MidCS.GetCoordSystem(out origPct1, out xAxis1, out yAxis1, out zAxis1);
|
||||
|
||||
beam2MidCS = beam2.PhysCSMid;
|
||||
beam2MidCS.GetCoordSystem(out origPct2, out xAxis2, out yAxis2, out zAxis2);
|
||||
|
||||
Tol eTol = new Tol(1.0e-5, 1.0e-5);
|
||||
|
||||
bool bXVectAreParallel = xAxis1.IsParallelTo(xAxis2, eTol);
|
||||
bool bYVectAreParallel = yAxis1.IsParallelTo(yAxis2, eTol);
|
||||
|
||||
|
||||
if (false == bXVectAreParallel || false == bYVectAreParallel)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private bool computeNonFillersData(Beam beam1, Beam beam2)
|
||||
{
|
||||
bool bResult = true;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// create instances
|
||||
_CS = new Matrix3d();
|
||||
_vForward = new Vector3d();
|
||||
_vSide = new Vector3d();
|
||||
_vUp = new Vector3d();
|
||||
_Beam2ShorteningEnd = Beam.eEnd.kStart;
|
||||
_ptOrigin = new Point3d();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// get furthest end points for the two beams
|
||||
|
||||
// get data from input beams
|
||||
Point3d ptStart1, ptEnd1, ptStart2, ptEnd2;
|
||||
Vector3d xAxis, yAxis, zAxis;
|
||||
|
||||
Matrix3d csTemp;
|
||||
csTemp = beam1.PhysCSStart;
|
||||
csTemp.GetCoordSystem(out ptStart1, out xAxis, out yAxis, out zAxis);
|
||||
|
||||
csTemp = beam1.PhysCSEnd;
|
||||
csTemp.GetCoordSystem(out ptEnd1, out xAxis, out yAxis, out zAxis);
|
||||
|
||||
csTemp = beam2.PhysCSStart;
|
||||
csTemp.GetCoordSystem(out ptStart2, out xAxis, out yAxis, out zAxis);
|
||||
|
||||
csTemp = beam2.PhysCSEnd;
|
||||
csTemp.GetCoordSystem(out ptEnd2, out xAxis, out yAxis, out zAxis);
|
||||
|
||||
|
||||
Vector3d vPt1Pt2 = null;
|
||||
|
||||
double dDist = 0.0;
|
||||
double dDistMax = 10.0;
|
||||
|
||||
dDistMax = ptStart2.DistanceTo(ptStart1);
|
||||
vPt1Pt2 = ptStart2.Subtract(ptStart1);
|
||||
|
||||
dDist = ptStart2.DistanceTo(ptEnd1);
|
||||
if (dDist > dDistMax)
|
||||
{
|
||||
vPt1Pt2 = ptStart2.Subtract(ptEnd1);
|
||||
dDistMax = dDist;
|
||||
}
|
||||
|
||||
dDist = ptEnd2.DistanceTo(ptStart1);
|
||||
if (dDist > dDistMax)
|
||||
{
|
||||
vPt1Pt2 = ptEnd2.Subtract(ptStart1);
|
||||
dDistMax = dDist;
|
||||
}
|
||||
|
||||
dDist = ptEnd2.DistanceTo(ptEnd1);
|
||||
if (dDist > dDistMax)
|
||||
vPt1Pt2 = ptEnd2.Subtract(ptEnd1);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// set _ptOrigin as the last point of main beam on vPt1Pt2 direction
|
||||
List<Point3d> ptsList = new List<Point3d>();
|
||||
ptsList.Add(ptStart1);
|
||||
ptsList.Add(ptEnd1);
|
||||
ptsList.Sort(new Point3dSorter(vPt1Pt2));
|
||||
_ptOrigin = ptsList[0];
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// set _Beam2ShorteningEnd as the end from first point of sec beam on vPt1Pt2 direction
|
||||
|
||||
ptsList.Clear();
|
||||
ptsList.Add(ptStart2);
|
||||
ptsList.Add(ptEnd2);
|
||||
ptsList.Sort(new Point3dSorter(vPt1Pt2));
|
||||
|
||||
_Beam2ShorteningEnd = pointsAreEqual(ptsList[1], ptStart2, 1.0e-5) ? Beam.eEnd.kStart : Beam.eEnd.kEnd;
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// set vectors
|
||||
// _vForward is along x axis of main beam, pointing from pt1 towards pt2, where pt1 and pt2 are furthest end points of the two beams
|
||||
// _vSide is z axis of main beam
|
||||
// _vUp is along y axis of main beam, computed as cross product between _vForward and _vSide
|
||||
Matrix3d csMainBeam;
|
||||
Vector3d vTemp;
|
||||
Point3d ptOrig;
|
||||
csMainBeam = beam1.PhysCSMid;
|
||||
csMainBeam.GetCoordSystem(out ptOrig, out vTemp, out yAxis, out zAxis);
|
||||
_vForward.Set(vTemp.x, vTemp.y, vTemp.z);
|
||||
if (null != vPt1Pt2)
|
||||
{
|
||||
if(vectorsHaveApproxSameDirection(_vForward,vPt1Pt2))
|
||||
_vForward = _vForward.Negate();
|
||||
}
|
||||
|
||||
_vSide.Set(zAxis.x, zAxis.y, zAxis.z);
|
||||
|
||||
_vUp = _vForward.CrossProduct(_vSide);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// set cs
|
||||
_CS.SetCoordSystem(_ptOrigin, _vForward, _vSide, _vUp);
|
||||
|
||||
return bResult;
|
||||
}
|
||||
|
||||
private void shortenSecondaryBeam(List<CreatedObjectInformation> spCreatedObjects, StraightBeam strBeam)
|
||||
{
|
||||
//create shortening and add it to the beam
|
||||
BeamShortening beamShort = new BeamShortening();
|
||||
|
||||
Plane planeShort = new Plane(_ptOrigin, _vForward);
|
||||
|
||||
Vector3d tmpVect = _vForward;
|
||||
tmpVect *= _dEdgeDistAlong1 + _dEdgeDistAlong2 + (_iNoBoltAlong - 1) * _dIntermDistAlong;
|
||||
|
||||
planeShort.TransformBy(Matrix3d.GetTranslation(tmpVect));
|
||||
if (0 != _iStaggering && _iNoBoltAcross > 1)
|
||||
{
|
||||
Vector3d vect = planeShort.Normal.Normalize();
|
||||
vect *= _dIntermDistAlong / 2;
|
||||
planeShort.TransformBy(Matrix3d.GetTranslation(vect));
|
||||
}
|
||||
|
||||
strBeam.AddFeature(beamShort);
|
||||
|
||||
beamShort.Set(planeShort.Origin, planeShort.Normal, _Beam2ShorteningEnd);
|
||||
|
||||
CreatedObjectInformation coi = new CreatedObjectInformation();
|
||||
coi.CreatedObject = beamShort;
|
||||
coi.JointTransferId = "ShortenRole";
|
||||
coi.Attributes = new eObjectsAttribute[0];
|
||||
|
||||
//add the new created object to the joint
|
||||
spCreatedObjects.Add(coi);
|
||||
}
|
||||
|
||||
private bool pointsAreEqual(Point3d pt1, Point3d pt2, double dTol)
|
||||
{
|
||||
bool bResult = true;
|
||||
|
||||
double d = Math.Sqrt((pt2.x - pt1.x) * (pt2.x - pt1.x) + (pt2.y - pt1.y) * (pt2.y - pt1.y) + (pt2.z - pt1.z) * (pt2.z - pt1.z));
|
||||
|
||||
if (d < dTol)
|
||||
bResult = true;
|
||||
else
|
||||
bResult = false;
|
||||
return bResult;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private bool createBoltsWithoutStager(List<CreatedObjectInformation> spCreatedObjects, StraightBeam beam1, StraightBeam beam2)
|
||||
{
|
||||
bool bRet = true;
|
||||
|
||||
// get the main beam height
|
||||
ProfileType beamProfType = beam1.GetProfType();
|
||||
double dHeight = beamProfType.GetGeometricalData(ProfileType.eCommonData.kProfHeight);
|
||||
|
||||
Point3d ptTemp;
|
||||
|
||||
movePoint(_ptOrigin, _vForward, _dEdgeDistAlong1 + (_iNoBoltAlong - 1) * _dIntermDistAlong / 2, out ptTemp);
|
||||
|
||||
switch (_iLayoutAcross)
|
||||
{
|
||||
case 0: // center
|
||||
movePoint(ptTemp, _vSide, _dOffsetAcross, out ptTemp);
|
||||
break;
|
||||
case 1: // from side 1
|
||||
movePoint(ptTemp, _vSide, -dHeight / 2 + (_iNoBoltAcross - 1) * _dIntermDistAcross / 2 + _dOffsetAcross,out ptTemp);
|
||||
break;
|
||||
case 2: // from side 2
|
||||
movePoint(ptTemp, _vSide, dHeight / 2 - (_iNoBoltAcross - 1) * _dIntermDistAcross / 2 - _dOffsetAcross, out ptTemp);
|
||||
break;
|
||||
}
|
||||
|
||||
Point3d ptO;
|
||||
Vector3d vX, vY, vZ;
|
||||
_CS.GetCoordSystem(out ptO, out vX, out vY, out vZ);
|
||||
|
||||
// set model role
|
||||
string strBoltRole = "Role";
|
||||
|
||||
Point3d lowerLeft = ptTemp - (_dIntermDistAlong / 2 * (_iNoBoltAlong - 1)) * vX - (_dIntermDistAcross / 2 * (_iNoBoltAcross - 1)) * vY;
|
||||
Point3d upperRight = ptTemp + (_dIntermDistAlong / 2 * (_iNoBoltAlong - 1)) * vX + (_dIntermDistAcross / 2 * (_iNoBoltAcross - 1)) * vY;
|
||||
|
||||
FinitRectScrewBoltPattern boltPattern = new FinitRectScrewBoltPattern(lowerLeft, upperRight, vX, vY);
|
||||
boltPattern.Nx = _iNoBoltAlong;
|
||||
boltPattern.Ny = _iNoBoltAcross;
|
||||
boltPattern.Standard = _sBoltType;
|
||||
boltPattern.Grade = _sBoltGrade;
|
||||
boltPattern.BoltAssembly = _sBoltSet;
|
||||
boltPattern.ScrewDiameter = _dBoltDiameter;
|
||||
|
||||
if (boltPattern != null)
|
||||
{
|
||||
if (1 == _iInvert)
|
||||
boltPattern.IsInverted = true;
|
||||
|
||||
boltPattern.WriteToDb();
|
||||
boltPattern.Connect(new FilerObject[] { beam1, beam2 }, _iBoltLocation == 0 ? AtomicElement.eAssemblyLocation.kOnSite : AtomicElement.eAssemblyLocation.kInShop);
|
||||
|
||||
CreatedObjectInformation coi = new CreatedObjectInformation();
|
||||
coi.CreatedObject = boltPattern;
|
||||
coi.JointTransferId = strBoltRole;
|
||||
coi.Attributes = new eObjectsAttribute[0];
|
||||
|
||||
spCreatedObjects.Add(coi);
|
||||
}
|
||||
return bRet;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private bool createBoltsWithStager(List<CreatedObjectInformation> spCreatedObjects, StraightBeam beam1, StraightBeam beam2)
|
||||
{
|
||||
bool bRes = true;
|
||||
|
||||
// get the main beam height
|
||||
ProfileType beamProfType = beam1.GetProfType();
|
||||
double dHeight = beamProfType.GetGeometricalData(ProfileType.eCommonData.kProfHeight);
|
||||
|
||||
Point3d ptTemp1, ptTemp2;
|
||||
|
||||
if (1 == _iStaggering) // side 1 stagger
|
||||
{
|
||||
movePoint(_ptOrigin, _vForward, _dEdgeDistAlong1 + (_iNoBoltAlong - 1) * _dIntermDistAlong / 2,out ptTemp1);
|
||||
movePoint(_ptOrigin, _vForward, _dEdgeDistAlong1 + _iNoBoltAlong * _dIntermDistAlong / 2,out ptTemp2);
|
||||
}
|
||||
else // side 2 stagger
|
||||
{
|
||||
movePoint(_ptOrigin, _vForward, _dEdgeDistAlong1 + (_iNoBoltAlong - 1) * _dIntermDistAlong / 2,out ptTemp2);
|
||||
movePoint(_ptOrigin, _vForward, _dEdgeDistAlong1 + _iNoBoltAlong * _dIntermDistAlong / 2,out ptTemp1);
|
||||
}
|
||||
|
||||
// number of across bolts of each group
|
||||
int iNoBoltAcross1 = (int)Math.Ceiling((double)_iNoBoltAcross / 2);
|
||||
int iNoBoltAcross2 = (int)Math.Floor((double)_iNoBoltAcross / 2);
|
||||
|
||||
switch (_iLayoutAcross)
|
||||
{
|
||||
case 0: // center
|
||||
if (1 == (_iNoBoltAcross % 2)) // odd number of bolts across
|
||||
{
|
||||
movePoint(ptTemp1, _vSide, _dOffsetAcross,out ptTemp1);
|
||||
movePoint(ptTemp2, _vSide, _dOffsetAcross,out ptTemp2);
|
||||
}
|
||||
else // even number of bolts
|
||||
{
|
||||
movePoint(ptTemp1, _vSide, _dOffsetAcross - _dIntermDistAcross / 2,out ptTemp1);
|
||||
movePoint(ptTemp2, _vSide, _dOffsetAcross + _dIntermDistAcross / 2,out ptTemp2);
|
||||
}
|
||||
break;
|
||||
case 1: // from side 1
|
||||
movePoint(ptTemp1, _vSide, -dHeight / 2 + (iNoBoltAcross1 - 1) * _dIntermDistAcross + _dOffsetAcross,out ptTemp1);
|
||||
movePoint(ptTemp2, _vSide, -dHeight / 2 + (iNoBoltAcross2) * _dIntermDistAcross + _dOffsetAcross,out ptTemp2);
|
||||
break;
|
||||
case 2: // from side 2
|
||||
movePoint(ptTemp1, _vSide, dHeight / 2 - (iNoBoltAcross1 - 1) * _dIntermDistAcross - _dOffsetAcross,out ptTemp1);
|
||||
movePoint(ptTemp2, _vSide, dHeight / 2 - (iNoBoltAcross2) * _dIntermDistAcross - _dOffsetAcross,out ptTemp2);
|
||||
break;
|
||||
}
|
||||
|
||||
// set model role
|
||||
string strBoltRole;
|
||||
strBoltRole = "Bolt#1";
|
||||
|
||||
Point3d ptO;
|
||||
Vector3d vX, vY, vZ;
|
||||
_CS.GetCoordSystem(out ptO, out vX, out vY, out vZ);
|
||||
|
||||
|
||||
Point3d lowerLeft = ptTemp1 - (_dIntermDistAlong / 2.0 * (_iNoBoltAlong - 1)) * vX - (_dIntermDistAcross * (iNoBoltAcross1 - 1)) * vY;
|
||||
Point3d upperRight = ptTemp1 + (_dIntermDistAlong / 2.0 * (_iNoBoltAlong - 1)) * vX + (_dIntermDistAcross * (iNoBoltAcross1 - 1)) * vY;
|
||||
|
||||
//create and add bolts
|
||||
FinitRectScrewBoltPattern boltPattern1 = new FinitRectScrewBoltPattern(lowerLeft, upperRight, vX, vY);
|
||||
boltPattern1.Nx = _iNoBoltAlong;
|
||||
boltPattern1.Ny = iNoBoltAcross1;
|
||||
boltPattern1.Standard = _sBoltType;
|
||||
boltPattern1.Grade = _sBoltGrade;
|
||||
boltPattern1.BoltAssembly = _sBoltSet;
|
||||
boltPattern1.ScrewDiameter = _dBoltDiameter;
|
||||
|
||||
lowerLeft = ptTemp2 - (_dIntermDistAlong / 2.0 * (_iNoBoltAlong - 1)) * vX - (_dIntermDistAcross * (iNoBoltAcross2 - 1)) * vY;
|
||||
upperRight = ptTemp2 + (_dIntermDistAlong / 2.0 * (_iNoBoltAlong - 1)) * vX + (_dIntermDistAcross * (iNoBoltAcross2 - 1)) * vY;
|
||||
|
||||
FinitRectScrewBoltPattern boltPattern2 = new FinitRectScrewBoltPattern(lowerLeft, upperRight, vX, vY);
|
||||
boltPattern2.Nx = _iNoBoltAlong;
|
||||
boltPattern2.Ny = iNoBoltAcross2;
|
||||
boltPattern2.Standard = _sBoltType;
|
||||
boltPattern2.Grade = _sBoltGrade;
|
||||
boltPattern2.BoltAssembly = _sBoltSet;
|
||||
boltPattern2.ScrewDiameter = _dBoltDiameter;
|
||||
|
||||
IJoint jnt = DatabaseManager.Open(JointId) as IJoint;
|
||||
|
||||
if (boltPattern1 != null && boltPattern2 != null)
|
||||
{
|
||||
if (1 == _iInvert)
|
||||
{
|
||||
boltPattern1.IsInverted = true;
|
||||
boltPattern2.IsInverted = true;
|
||||
}
|
||||
|
||||
boltPattern1.WriteToDb();
|
||||
boltPattern1.Connect(new FilerObject[] { beam1, beam2 }, _iBoltLocation == 0 ? AtomicElement.eAssemblyLocation.kOnSite : AtomicElement.eAssemblyLocation.kInShop);
|
||||
|
||||
boltPattern2.WriteToDb();
|
||||
boltPattern2.Connect(new FilerObject[] { beam1, beam2 }, _iBoltLocation == 0 ? AtomicElement.eAssemblyLocation.kOnSite : AtomicElement.eAssemblyLocation.kInShop);
|
||||
|
||||
CreatedObjectInformation coi1 = new CreatedObjectInformation();
|
||||
coi1.CreatedObject = boltPattern1;
|
||||
coi1.JointTransferId = strBoltRole;
|
||||
coi1.Attributes = new eObjectsAttribute[0];
|
||||
|
||||
CreatedObjectInformation coi2 = new CreatedObjectInformation();
|
||||
coi2.CreatedObject = boltPattern2;
|
||||
coi2.JointTransferId = strBoltRole;
|
||||
coi2.Attributes = new eObjectsAttribute[0];
|
||||
|
||||
spCreatedObjects.Add(coi1);
|
||||
spCreatedObjects.Add(coi2);
|
||||
}
|
||||
return bRes;
|
||||
}
|
||||
private int sortPoints(Point3d p1, Point3d p2, Vector3d refVect)
|
||||
{
|
||||
Vector3d vectDiff = p2.Subtract(p1);
|
||||
double dVal = 0.0;
|
||||
dVal = vectDiff.DotProduct(refVect);
|
||||
if ((-1.0e-5 < dVal) &&
|
||||
(dVal < 1.0e-5))
|
||||
return 0;
|
||||
else if (dVal < 0)
|
||||
return -1;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
private void movePoint(Point3d pt, Vector3d vect, double dist, out Point3d resPt)
|
||||
{
|
||||
//copies ptRes from pt and moves it along vector vect with distance dist
|
||||
|
||||
Vector3d vect1 = new Vector3d(vect);
|
||||
|
||||
vect1.Normalize();
|
||||
vect1 *= dist;
|
||||
|
||||
resPt = new Point3d(pt.x + vect1.x, pt.y + vect1.y, pt.z + vect1.z);
|
||||
}
|
||||
|
||||
private bool vectorsHaveApproxSameDirection(Vector3d v1, Vector3d v2)
|
||||
{
|
||||
if (v1.IsPerpendicularTo(v2))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Point3d pt0, pt1, pt2;
|
||||
pt0 = new Point3d();
|
||||
movePoint(pt0, v1, 100, out pt1);
|
||||
List<Point3d> ptsList = new List<Point3d> { pt0, pt1 };
|
||||
ptsList.Sort(new Point3dSorter(v2));
|
||||
|
||||
pt2 = ptsList[0];
|
||||
|
||||
double dDist = 0;
|
||||
dDist = pt2.DistanceTo(pt1);
|
||||
|
||||
if (Math.Abs(dDist) > 1.0e-5)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public class Point3dSorter : IComparer<Point3d>
|
||||
{
|
||||
private Vector3d _sortDir;
|
||||
public Point3dSorter(Vector3d sortDir)
|
||||
{
|
||||
if (sortDir == null)
|
||||
_sortDir = Vector3d.kXAxis;
|
||||
|
||||
_sortDir = sortDir;
|
||||
}
|
||||
|
||||
public int Compare(Point3d a, Point3d b)
|
||||
{
|
||||
Point3d p1 = a as Point3d;
|
||||
Point3d p2 = b as Point3d;
|
||||
Vector3d vect = p2.Subtract(p1);
|
||||
double dVal = 0.0;
|
||||
dVal = vect.DotProduct(_sortDir);
|
||||
if ((-1.0e-5 < dVal) &&
|
||||
(dVal < 1.0e-5))
|
||||
return 0;
|
||||
else if (dVal < 0)
|
||||
return -1;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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("SampleLapJoint")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Autodesk, Inc.")]
|
||||
[assembly: AssemblyProduct("SampleLapJoint")]
|
||||
[assembly: AssemblyCopyright("Copyright © Autodesk, Inc. 2022")]
|
||||
[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("770444f5-fc7d-4de5-aa26-71dfc383ae4e")]
|
||||
|
||||
// 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")]
|
||||
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\StructuralConnectionsSDKSamples.Common.props" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x64</Platform>
|
||||
<ProjectGuid>{C9172C84-3F14-4B43-8FD8-26BD93E27EFC}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SampleLapJoint</RootNamespace>
|
||||
<AssemblyName>SampleLapJoint</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ASCADLinkMgd">
|
||||
<HintPath>$(ASInstallDir)\ASCADLinkMgd.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="ASGeometryMgd">
|
||||
<HintPath>$(ASInstallDir)\ASGeometryMgd.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="ASModelerMgd">
|
||||
<HintPath>$(ASInstallDir)\ASModelerMgd.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="ASObjectsMgd">
|
||||
<HintPath>$(ASInstallDir)\ASObjectsMgd.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="ASProfilesMgd">
|
||||
<HintPath>$(ASInstallDir)\ASProfilesMgd.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="DotNetRoots">
|
||||
<HintPath>$(ASInstallDir)\DotNetRoots.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="LapJoint.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
+36
@@ -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("SteelConnectionsDotNetJointExample")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Autodesk, Inc.")]
|
||||
[assembly: AssemblyProduct("SteelConnectionsDotNetJointExample")]
|
||||
[assembly: AssemblyCopyright("Copyright © Autodesk, Inc. 2015")]
|
||||
[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("451F853E-613F-4C62-9B99-3A8BD58B8043")]
|
||||
|
||||
// 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")]
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
+100
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<Import Project="..\StructuralConnectionsSDKSamples.Common.props" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x64</Platform>
|
||||
<ProjectGuid>{451F853E-613F-4C62-9B99-3A8BD58B8043}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SteelConnectionsDotNetJointExample</RootNamespace>
|
||||
<AssemblyName>SteelConnectionsDotNetJointExample</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\Binaries\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ASObjectsMgd">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\ASObjectsMgd.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="ASGeometryMgd">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\ASGeometryMgd.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="ASCADLinkMgd">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>$(ASInstallDir)\ASCADLinkMgd.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="DotNetRoots">
|
||||
<HintPath>$(ASInstallDir)\DotNetRoots.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="DotNetRootsMgd">
|
||||
<HintPath>$(ASInstallDir)\DotNetRootsMgd.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BridgeGirderSample.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Dummy.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Resources\ResDummy.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PaletteData Version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<ResourceDll>SteelConnectionsDotNetJointExample.dll</ResourceDll>
|
||||
<PreviewResourceDll>SteelConnectionsDotNetJointExample.dll</PreviewResourceDll>
|
||||
<Categories>
|
||||
<PaletteCategory>
|
||||
<Name>Plates at beam</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Steel Connections Sample Joint</Description>
|
||||
<Command>SteelConnectionsJointExample</Command>
|
||||
<PreviewText>This is my test joint</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>E8BB9834-E1A2-4644-9C59-1C9812C04E8E</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
<PaletteCategory>
|
||||
<Name>Net joint</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Bridge Girder DotNet Example</Description>
|
||||
<Command>BridgeGirderSample</Command>
|
||||
<PreviewText>This is my test joint 2</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>36c78249-132f-4037-9822-3802a5cf9345</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
<PaletteCategory>
|
||||
<Name>Net joint</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Lap Joint Example</Description>
|
||||
<Command>LapJoint</Command>
|
||||
<PreviewText>This is my Lap joint</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>B2E820AB-A8BD-4998-878C-1BE4364B1BD9</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
<PaletteCategory>
|
||||
<Name>Net joint clip angle</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Steel Connections Clip Angle Example</Description>
|
||||
<Command>SampleClipAngle</Command>
|
||||
<PreviewText>This is my test joint 3</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>8B4FDDC8-946A-49B4-AF65-AC54C5615AB1</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
<PaletteCategory>
|
||||
<Name>Native Sample Clip Angle</Name>
|
||||
<Image>ResDummy.png</Image>
|
||||
<Items>
|
||||
<PaletteItem>
|
||||
<Description>Steel Connections Native Clip Angle</Description>
|
||||
<Command>SampleClipAngleNative</Command>
|
||||
<PreviewText>C++ Native Clip Angle Example</PreviewText>
|
||||
<Images>
|
||||
<string>Dummy.png</string>
|
||||
</Images>
|
||||
<PreviewImages>
|
||||
<string>ResDummy.png</string>
|
||||
</PreviewImages>
|
||||
<TypeId>FD62E6AB-0412-4F2B-9DB8-C5D5385F8042</TypeId>
|
||||
</PaletteItem>
|
||||
</Items>
|
||||
</PaletteCategory>
|
||||
</Categories>
|
||||
</PaletteData>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ASInstallDir>C:\Program Files\Autodesk\Revit 2024\AddIns\SteelConnections\</ASInstallDir>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.0.32014.148
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteelConnectionsJointExample", "SampleJoint\SteelConnectionsJointExample.csproj", "{0D5537D0-19F6-40A0-B5C6-852210AE6983}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleDesign", "SampleDesign\SampleDesign.csproj", "{9CE75523-141E-4F65-8F96-71E2A9C826E2}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteelConnectionsDotNetJointExample", "SteelConnectionsNetJoints\SteelConnectionsDotNetJointExample.csproj", "{451F853E-613F-4C62-9B99-3A8BD58B8043}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleClipAngle", "SampleClipAngle\SampleClipAngle.csproj", "{8CFF2BFD-0E4D-4A20-95F4-C1FD4BDF0703}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleClipAngleNative", "SampleClipAngleNative\SampleClipAngleNative.vcxproj", "{42DEBBF6-6FA4-4FEC-97A4-C6A0C994A4FC}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleLapJoint", "SampleLapJoint\SampleLapJoint.csproj", "{C9172C84-3F14-4B43-8FD8-26BD93E27EFC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{0D5537D0-19F6-40A0-B5C6-852210AE6983}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{0D5537D0-19F6-40A0-B5C6-852210AE6983}.Debug|x64.Build.0 = Debug|x64
|
||||
{0D5537D0-19F6-40A0-B5C6-852210AE6983}.Release|x64.ActiveCfg = Release|x64
|
||||
{0D5537D0-19F6-40A0-B5C6-852210AE6983}.Release|x64.Build.0 = Release|x64
|
||||
{9CE75523-141E-4F65-8F96-71E2A9C826E2}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9CE75523-141E-4F65-8F96-71E2A9C826E2}.Debug|x64.Build.0 = Debug|x64
|
||||
{9CE75523-141E-4F65-8F96-71E2A9C826E2}.Release|x64.ActiveCfg = Release|x64
|
||||
{9CE75523-141E-4F65-8F96-71E2A9C826E2}.Release|x64.Build.0 = Release|x64
|
||||
{451F853E-613F-4C62-9B99-3A8BD58B8043}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{451F853E-613F-4C62-9B99-3A8BD58B8043}.Debug|x64.Build.0 = Debug|x64
|
||||
{451F853E-613F-4C62-9B99-3A8BD58B8043}.Release|x64.ActiveCfg = Release|x64
|
||||
{451F853E-613F-4C62-9B99-3A8BD58B8043}.Release|x64.Build.0 = Release|x64
|
||||
{8CFF2BFD-0E4D-4A20-95F4-C1FD4BDF0703}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8CFF2BFD-0E4D-4A20-95F4-C1FD4BDF0703}.Debug|x64.Build.0 = Debug|x64
|
||||
{8CFF2BFD-0E4D-4A20-95F4-C1FD4BDF0703}.Release|x64.ActiveCfg = Release|x64
|
||||
{8CFF2BFD-0E4D-4A20-95F4-C1FD4BDF0703}.Release|x64.Build.0 = Release|x64
|
||||
{42DEBBF6-6FA4-4FEC-97A4-C6A0C994A4FC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{42DEBBF6-6FA4-4FEC-97A4-C6A0C994A4FC}.Debug|x64.Build.0 = Debug|x64
|
||||
{42DEBBF6-6FA4-4FEC-97A4-C6A0C994A4FC}.Release|x64.ActiveCfg = Release|x64
|
||||
{42DEBBF6-6FA4-4FEC-97A4-C6A0C994A4FC}.Release|x64.Build.0 = Release|x64
|
||||
{C9172C84-3F14-4B43-8FD8-26BD93E27EFC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C9172C84-3F14-4B43-8FD8-26BD93E27EFC}.Debug|x64.Build.0 = Debug|x64
|
||||
{C9172C84-3F14-4B43-8FD8-26BD93E27EFC}.Release|x64.ActiveCfg = Release|x64
|
||||
{C9172C84-3F14-4B43-8FD8-26BD93E27EFC}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {726E4B0D-553A-449D-8A70-52CEBD052B3D}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Reference in New Issue
Block a user