卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

使用VS2008 ARX2010創(chuàng)建簡單的自定義實體(六)

本教程將一步一步教你如何在CAD中創(chuàng)建一個自定義實體的程序。 設置捕捉點在subGetOsnapPoints(AcDb::OsnapMode osnapMode, int gsSelectionMar

本教程將一步一步教你如何在CAD中創(chuàng)建一個自定義實體的程序。

設置捕捉點

在subGetOsnapPoints(AcDb::OsnapMode osnapMode, int gsSelectionMark, const AcGePoint3d pickPoint, const AcGePoint3d lastPoint, const AcGeMatrix3d viewXform, AcGePoint3dArray snapPoints, AcDbIntArray geomIds)函數(shù)中增加以下代碼:

```cpp

switch (osnapMode) {

case AcDb::kOsModeEnd:

(m_PtA);

(m_PtAB);

(m_PtB);

(m_PtBA);

break;

case AcDb::kOsModeMid:

(m_PtA ((m_PtAB - m_PtA).length()/2.0) * ((m_PtAB - m_PtA).normalize()));

(m_PtAB ((m_PtB - m_PtAB).length()/2.0) * ((m_PtB - m_PtAB).normalize()));

(m_PtB ((m_PtBA - m_PtB).length()/2.0) * ((m_PtBA - m_PtB).normalize()));

(m_PtBA ((m_PtA - m_PtBA).length()/2.0) * ((m_PtA - m_PtBA).normalize()));

break;

case AcDb::kOsModeCen:

(AcGePoint3d((m_PtB.x m_PtA.x)/2.0, (m_PtB.y m_PtA.y)/2.0, m_PtA.z));

break;

}

return (Acad::eOk);

```

用戶自定義實體的變換

用戶自定義實體通過transformBy()方法來實現(xiàn)。打開Autodesk類瀏覽器,展開MyCustomEntity節(jié)點,再展開Base Classes節(jié)點再展開AcDbEntity節(jié)點。滾動列表選擇:Acad::ErrorStatus transformBy(const AcGeMatrix3d xform)。在該方法上右擊鼠標選擇"Implement Base Class Method"。這個函數(shù)邏輯非常簡單,只需增加如下代碼:

```cpp

assertWriteEnabled();

m_(xform);

m_(xform);

m_(xform);

m_(xform);

```

這個函數(shù)實現(xiàn)了用戶自定義實體的變換。

至此,我們的這個自定義實體的功能已經(jīng)完善了,下一篇將會在ARX項目中創(chuàng)建這個自定義實體。

標簽: