fangmin723 发表于 2024-6-17 15:27:41

获取线型定义的长度间隔数据




/// <summary>
/// 测试命令Tt
/// </summary>

public void Tt()
{
    var doc = Acap.DocumentManager.MdiActiveDocument;
    var db = doc.Database;
    using var dloc = doc.LockDocument();
    using var tr = db.TransactionManager.StartTransaction();
    var lty = (LinetypeTableRecord)tr.GetObject(db.Celtype, OpenMode.ForRead);
    var dashes1 = lty.GetDashes();
    if ("ByLayer".ToUpper().Equals(lty.Name.ToUpper()))
    {
      //var layer = (LayerTableRecord)curve.LayerId.GetObject();
      var layer = (LayerTableRecord)db.Clayer.GetObject();
      lty = (LinetypeTableRecord)layer.LinetypeObjectId.GetObject();
    }
    var dashes2 = lty.GetDashes();
}


/// <summary>
/// 获取线型定义的长度间隔数据
/// </summary>
/// <param name="linetype">线型对象</param>
/// <returns>长度间隔数据数组</returns>
public static double[] GetDashes(this LinetypeTableRecord linetype)
{
    return Enumerable.Range(0, linetype.NumDashes)
      .Select(i => linetype.DashLengthAt(i).ToRound()).ToArray();
}



/// <summary>
/// 四舍五入
/// </summary>
/// <param name="value">数值;类型:double</param>
/// <param name="digits">小数点位数;默认:8位;类型:int</param>
/// <returns>四舍五入后的数值</returns>
public static double ToRound(this double value, int digits = 8) => Math.Round(value, digits, MidpointRounding.AwayFromZero);





你有种再说一遍 发表于 2024-6-17 16:43:09

这个数据貌似直接指向线型文件的

fangmin723 发表于 2024-6-17 16:51:23

你有种再说一遍 发表于 2024-6-17 16:43
这个数据貌似直接指向线型文件的

是的,就是需要获取这个数据,线型文件里面的数据好像都要/25.4

你有种再说一遍 发表于 2024-6-17 17:13:59

本帖最后由 你有种再说一遍 于 2024-6-17 18:08 编辑

fangmin723 发表于 2024-6-17 16:51
是的,就是需要获取这个数据,线型文件里面的数据好像都要/25.4
你能说出这个值,那么你不考虑一下是公制还是英制单位吗...又或者你在无单位下面加载错了文件

fangmin723 发表于 2024-6-17 18:18:04

你有种再说一遍 发表于 2024-6-17 17:13
你能说出这个值,那么你不考虑一下是公制还是英制单位吗...又或者你在无单位下面加载错了文件

嗯嗯,不用,文件内是英制的,用代码获取到的是公制的,不用考虑转换的问题了

你有种再说一遍 发表于 2024-6-17 18:23:56

fangmin723 发表于 2024-6-17 18:18
嗯嗯,不用,文件内是英制的,用代码获取到的是公制的,不用考虑转换的问题了

我怎么觉得不是呢...iso后缀那个就是公制的,你加载英制也应该是英制比例才对吧

fangmin723 发表于 2024-6-17 18:49:27

你有种再说一遍 发表于 2024-6-17 18:23
我怎么觉得不是呢...iso后缀那个就是公制的,你加载英制也应该是英制比例才对吧

不清楚,不知道是不是因为图纸公制的缘故,还是其它原因

你有种再说一遍 发表于 2024-6-17 19:10:22

fangmin723 发表于 2024-6-17 18:49
不清楚,不知道是不是因为图纸公制的缘故,还是其它原因

新建一个研究研究呀

fangmin723 发表于 2024-6-17 20:10:31

你有种再说一遍 发表于 2024-6-17 19:10
新建一个研究研究呀

这可以,等把线型分解完成后,我试试

fangmin723 发表于 2024-6-18 15:42:05

你有种再说一遍 发表于 2024-6-17 19:10
新建一个研究研究呀

新建了一个,调试查看了下,没问题
页: [1]
查看完整版本: 获取线型定义的长度间隔数据