CAD二次開發 學習筆記(2)

2022-10-10 07:12:08 字數 2255 閱讀 2547

cad二次開發 學習筆記(2)

三點法畫圓的預備知識(點徑法和兩點法相對比較簡單,不作詳述):

思路:兩個點向式方程

聯立求出圓心座標表示式

注意事項:

上述表示式中,分母可能為0;

如果圓的平面在xy平面,那麼z座標表示式的分母則為0,會導致錯誤;

有兩種解決方案(等效的):

方案一:

在使用座標表示式之前對分母進行判定,如果分母為0,則表示該座標為0,而不用呼叫座標表示式;

方案二:

使用圓所在平面的法向量進行判定,如果法向量的x,y座標都是0,說明圓所在平面為xy平面,那麼z就可以直接賦值0,而不用呼叫座標表示式;

三種畫圓的方法及其實現

[commandmethod("circletest")]

public void circletest()

}//點徑法建立圓

public circle creatcircle(point3d center, double radius)

//兩點法建立圓

public circle creatcircle(point3d point1, point3d point2)

//三點法建立圓

public circle creatcircle(point3d point1, point3d point2, point3d point3)

//判斷三點是否共線

public bool iscollinear(point3d point1, point3d point2, point3d point3)

//求兩點的中點

public point3d middlepoint(point3d point1, point3d point2)

執行結果

角度測試

[commandmethod("angletest")]

public void angletest()

\n");

ed.writemessage($"vector3d.xaxis.getangleto(vector3d.yaxis):\n");

ed.writemessage($"vector3d.xaxis.getangleto(-vector3d.yaxis):\n");

ed.writemessage($"vector3d.xaxis.getangleto(-vector3d.yaxis):\n");

ed.writemessage($"new vector3d(1,1,0).getangleto(vector3d.xaxis):\n");

ed.writemessage($"new vector3d(1,1,0).getangleto(vector3d.xaxis):\n");

ed.writemessage($"new vector3d(1,1,0).getangleto(-vector3d.xaxis):\n");

ed.writemessage($"new vector3d(1,1,0).getangleto(-vector3d.xaxis):\n");

ed.writemessage($"new vector3d(1, 1, 0).getangleto(vector3d.yaxis):\n");

ed.writemessage($"new vector3d(1, 1, 0).getangleto(vector3d.yaxis):\n");

ed.writemessage($"new vector3d(1, 1, 0).getangleto(-vector3d.yaxis):\n");

ed.writemessage($"new vector3d(1, 1, 0).getangleto(-vector3d.yaxis):\n");

}

執行結果

Cad二次開發(三)

接著上次的說,上次介紹了環境搭建,並成功的列印了 hello cad,下面介紹cad中基本操作。首先加入乙個直線到cad中 想要讀取這段 要有一定的c 基礎,如果沒有任何c 基礎建議先從c 基礎學習,推薦譚浩強版本的教程,淺顯易懂。下面介紹一些cad的乙個基本實體 直線。直線包含兩個點 起點和終點。...

CAD二次開發Curve類函式

1.getarea 功能 獲取曲線面積值 2.getclosestpointto 功能 獲得曲線外點到曲線最近距離曲線上的點,或者兩條曲線間最近距離的點 3.getdistatparam 功能 獲得曲線上任一引數到曲線起點引數的距離或者曲線上兩引數間的距離 public virtual double...

《專注學習》基於C 的CAD二次開發

三 基於c 的cad二次開發 依舊因為專案需要,需要cad二次開發下,已經有優秀的同事做了一部分功能了,也已經有比較成熟的 因為我這邊專案的需要,得自己開發的相應功能,只能自己慢慢學起來了 c 語言的了解 了解如何利用c 進行cad二次開發 看懂同事的 加入自己的需求開發 此處主要參考菜鳥教程,好快...