zoukankan      html  css  js  c++  java
  • cad.net 关于图元初始化注意事项

    调用初始化赋值

    初始化图元的时候必须调用一下Entity.SetDatabaseDefaults();尤其是初始化填充(可以看到我代码做了一次预处理测试).

    因为acad的不同版本会修改初始化赋值的顺序,导致此问题,
    而且它报错的地方可能并不是提交事务到数据库时,
    而是计算图元显示时: hatch.EvaluateHatch(true);//计算填充并显示,例如通过jig触发了.

    这个操作是通用于所有图元的,
    当构造函数没有可输入参数时候才需要,如果是有重载参数的,最好利用含有参数来实现初始化(因为它更偏向于规范,而非必然报错)

    举个简单例子:
    ok:

    var ha = new Hatch(x,xx,xxx);
    ha.其他工作
    

    ok:

    var ha = new Hatch();
    ha.SetDatabaseDefaults();
    ha.其他工作
    

    不ok:

    var ha = new Hatch();
    ha.其他工作
    

    谁特喵记得住啊,所以我都是把所有新建图元封装一次的,注意封装内实现就行了.
    可以参考李小科视频上面的,不过就是不要抄它事务放子函数就行了(把事务传参进去子函数).
    如果你记得住,那就当我没说.

    相关阅读

    AutoCAD.NET关于Hatch填充

    初始化赋值和修改

    数据库上已有的属性块使用ScaleFactors和Position修改并不改变图形,这是为什么呢?

    这是由于entity.属性(字段)是用来初始化的,之后再去修改就最好不要用属性(字段),而是通过矩阵去修改.

    可以通过以下代码实践一下:

    但是这些属性(字段)又可以读,又可以初始化改,加入数据库之后的非矩阵部分又可以赋值,例如"文字内容",
    所以只需要记住一个原则就行:新建时通过属性或者字段,修改时通过矩阵

    (完)

  • 相关阅读:
    虚方法和抽象方法
    c#_实现FTP方法(一) FtpWebRequest
    sql server 分页
    5ucms进阶
    图片处理函数
    [转]C++11新特性:Lambda函数
    [STL]for_each详细用法[转]
    [算法]hash table 与 hash map 实现
    [算法]字典树
    [STL]vector的使用[转]
  • 原文地址:https://www.cnblogs.com/JJBox/p/15478475.html
Copyright © 2011-2022 走看看