This repository has been archived on 2023-01-27. You can view files and clone it, but cannot push or open issues or pull requests.
cad/ref/xcad/docs/_src/MultiTargetAddIn.cs
2022-10-15 19:16:08 +02:00

63 lines
1.8 KiB
C#

using System;
using System.Runtime.InteropServices;
using SolidWorks.Interop.sldworks;
using Xarial.XCad.SolidWorks;
using Xarial.XCad.SolidWorks.Enums;
namespace Xarial.XCad.Documentation
{
[ComVisible(true), Guid("E574D882-4223-4FB3-9160-0F54655FB6D9")]
public class MultiTargetAddIn : SwAddInEx
{
//--- Major
public void ReadDescriptionProperty()
{
var prpMgr = Application.Sw.IActiveDoc2.Extension.CustomPropertyManager[""];
var prpName = "Description";
string val;
string resVal;
if (Application.IsVersionNewerOrEqual(SwVersion_e.Sw2018))
{
bool wasRes;
bool linkToPrp;
prpMgr.Get6(prpName, false, out val, out resVal, out wasRes, out linkToPrp);
}
else if (Application.IsVersionNewerOrEqual(SwVersion_e.Sw2014))
{
bool wasRes;
prpMgr.Get5(prpName, false, out val, out resVal, out wasRes);
}
else
{
prpMgr.Get4(prpName, false, out val, out resVal);
}
Logger.Log($"{prpName} = {resVal} [{val}]");
}
//---
//--- Minor
public void GetTolerance(IDimension dim)
{
var dimTol = dim.Tolerance;
double maxTol;
double minTol;
if (Application.IsVersionNewerOrEqual(SwVersion_e.Sw2015, 3))
{
dimTol.GetMinValue2(out minTol);
dimTol.GetMaxValue2(out maxTol);
}
else
{
minTol = dimTol.GetMinValue();
maxTol = dimTol.GetMaxValue();
}
}
//---
}
}