acdb类杂记
| 從今天起我陸續貼給大家: AcApLayoutManager 類 處理和訪問AcDbLayout對象的應用程序特定程序的接口類。這個類也控制著與GUI屬性相關的Layout(布局)。 繼承自 AcDbLayoutManager 包含文件 acaplmgr.h 參見 AcDbLayout, AcDbLayoutManager 成員 AcApLayoutManager Application Methods (應用程序方法) AcApLayoutManager::CreateViewports函數 virtual Adesk::Boolean createViewports() = 0; 當在圖紙空間布局里能默認建立一個視口時,這個函數返回kTrue,否則返回kFalse。 AcApLayoutManager::findActiveTab函數 virtual const char * findActiveTab() = 0; 這個函數返回一個指向當前選定布局標簽的名稱的指針常量,這個名稱就是當前AcDbLayout對象的名稱。 AcApLayoutManager::getClipBoundaryElaboration函數 virtual Acad::ErrorStatus getClipBoundaryElaboration( AcDbObjectId clipId, AcGePoint2dArray *& clipBoundary) = 0; clipId 傳遞非矩形裁剪實體視口的AcDbObjectId clipBoundary 返回指向裁剪實體視口的AcGePoint2dArray邊界點的指針 這個函數取得一個非矩形裁剪實體視口的AcDbObjectId并在一個AcGePoint2dArray對象數組中返回屏幕上的邊界點。邊界點在圖紙空 間圖形坐標中。如果在顯示列表中找到一個邊界且成功返回,則返回值為eOK,調用者必須在使用后刪除已返回的clipBoundary。如果找不到實體的 邊界,則返回錯誤狀態。如果應用程序打開的要求有邊界的AcDbViewport,則clipId參數將傳遞給視口的 AcDbViewport::nonRectClipEntityId()方法,這個方法將返回視口裁剪實體的AcDbObjectId。 AcApLayoutManager::getNextNewLayoutName函數 virtual char * getNextNewLayoutName( AcDbDatabase* useDb = NULL) = 0; useDb 輸入指向AcDbDatabase的指針,可選的;默認使用當前數據庫 這個函數掃描名稱與"Layout#"類型相匹配的已有的布局(包含已刪除的布局),其中“#”是一個從1開始的數。這個函數從“Layout1”開始,試圖找出未在這個格式中使用的布局類型,并返回該布局類型。 AcApLayoutManager::pageSetup函數 virtual int pageSetup( AcDbObjectId layoutBTRId = AcDbObjectId::kNull, void* pParent = NULL, Adesk::Boolean isPageSetupDlg = TRUE) = 0; layoutBTRId 輸入AcDbLayout塊表記錄用于初始化對話框的AcDbObjectId,可選的;默認值AcDbObjectId::kNull表示使用活動的AcDbLayout對象。 pParent 輸入指向父窗口調用對話框的指針,可選的;默認值NULL表示使用AutoCAD的主窗口。 isPageSetupDlg 輸入布爾值,在頁面設置和繪圖對話框之間進行切換。 在默認情況下,這個函數使用當前的AcDbLayout對象加載“頁面設置”對話框。另外可選的,這個函數使用一個不同的AcDbLayout對象、一個指向父窗口的指針以及表示是否使用共享的繪圖對話框代替“頁面設置”對話框的布爾值作為參數進行初始化。 如果“頁面設置”對話框被取消,則這個函數返回0;如果“頁面設置”對話框成功,則這個函數返回1;在任何錯誤的情況下,返回-1。 AcApLayoutManager::pointInViewports函數 virtual Acad::ErrorStatus pointInViewports( const AcGePoint3d & pickPt, AcDbObjectIdArray & viewports) = 0; pickPt 傳遞在世界坐標系下圖紙空間的選擇點。 viewports 返回指向要返回的AcDbViewport實體的Ids 的AcDbObjectIdArray的指針。 這個函數傳遞在圖紙空間的選擇點,并返回一個表,表是以覆蓋每個選取點的AcDbViewport,包括非矩形視口的AcDbObjectId實體的 AcDbObjectIdArray的形式返回。如果每個視口在該點重迭,那么將返回所有的視口,但是如果用戶雙擊該點,則將選中在陣列中的第一個 AcDbViewport的ID的視口。圖紙空間視口將不會包含在陣列中。如果沒有視口含有該點,則返回ePointNotOnEntity,且不會建立 AcDbObjectIdArray。如果至少有一個視口包含該點,則返回eOK。用戶必須在完成后刪除返回的AcDbObjectIdArray。這個 函數使應用程序可簡易地判斷一個給定點是否在非矩形(裁剪的)視口內。 AcApLayoutManager::setCreateViewports函數 virtual void setCreateViewports( Adesk::Boolean createViewports) = 0; createViewports 輸入的布爾值;表示視口是否默認地在初始入口創建至圖紙空間中 這個函數確定一個視口是否默認地在初始入口創建至圖紙空間布局中。 AcApLayoutManager::setDefaultPlotConfig函數 virtual void setDefaultPlotConfig( AcDbObjectId layoutBTRId) = 0; layoutBTRId 輸入用于初始化的AcDbLayout對象的AcDbobjectId。 這個函數用適當的默認值初始化給定的AcDbLayout對象。 AcApLayoutManager::setShowPageSetup函數 virtual void setShowPageSetup( Adesk::Boolean showPageSetupDlg) = 0; showPageSetupDlg 輸入布爾值,“頁面設置”對話框是否在默認的入口加載至圖紙空間布局標簽中。 這個函數設置“頁面設置”對話框是否在默認的入口加載至圖紙空間布局標簽中。 AcApLayoutManager::setShowPaperBackground函數 virtual void setShowPaperBackground( Adesk::Boolean showPaperBackground) = 0; showPaperBackground 輸入布爾值,表示是否顯示圖紙背景。 這個函數設置是否顯示當前或活動的AcDbLayout對象的圖紙背景。kTrue值設定顯示圖紙背景;kFalse值設定不顯示圖紙背景。 AcApLayoutManager::setShowPaperMargins函數 virtual void setShowPaperMargins( Adesk::Boolean showPaperMargins) = 0; showPaperMargins 輸入的布爾值;表示是否顯示圖紙邊緣。 這個函數設置是否顯示當前或活動的AcDbLayout對象的可打印區域或圖紙邊緣(虛線圍成的矩形)。kTrue值表示顯示圖紙邊緣;kFalse值表示不顯示圖紙邊緣。 AcApLayoutManager::setShowPrintBorder函數 virtual void setShowPrintBorder( Adesk::Boolean showPrintBorder) = 0; showPrintBorder 輸入的布爾值;表示是否顯示打印邊界線。 這個函數設置是否顯示當前或活動的AcDbLayout對象的打印邊界線(圖紙邊界線)。kTrue值表示顯示打印邊界線;kFalse值表示不顯示打印邊界線。 AcApLayoutManager::setShowTabs函數 virtual void setShowTabs( Adesk::Boolean showTabs) = 0; showTabs 輸入的布爾值;表示是否顯示布局標簽。 這個函數設置是否顯示布局標簽。kTrue值表示顯示布局標簽;kFalse值表示不顯示布局標簽。 AcApLayoutManager::showPageSetup函數 virtual Adesk::Boolean showPageSetup() = 0; 這個函數返回是否“頁面設置”對話框自動地在初始入口加載至一個圖紙空間布局中。返回1表示加載;返回0表示不加載。 AcApLayoutManager::showPaperBackground函數 virtual Adesk::Boolean showPaperBackground() = 0; 這個函數返回當前的AcDbLayout對象的圖紙背景是否可見。返回1表示可見;返回0表示不可見。 AcApLayoutManager::showPaperMargins函數 virtual Adesk::Boolean showPaperMargins() = 0; 這個函數返回當前的AcDbLayout對象的圖紙標簽是否可見。返回1表示可見;返回0表示不可見。 AcApLayoutManager::showPrintBorder函數 virtual Adesk::Boolean showPrintBorder() = 0; 這個函數返回當前的AcDbLayout對象的打印邊界線是否可見。返回1表示可見;返回0表示不可見。 AcApLayoutManager::showTabs函數 virtual Adesk::Boolean showTabs() = 0; 這個函數返回布局標簽是否可見。返回1表示可見;返回0表示不可見。 AcApLayoutManager::updateCurrentPaper函數 virtual void updateCurrentPaper( Adesk::Boolean zoomToPaper = FALSE) = 0; zoomToPaper 輸入布爾值,可選的;決定是否在重生視圖后zoom(縮放)至當前圖紙圖像的邊界。 這個函數更新圖紙空間的圖紙圖像以反映活動的AcDbLayout對象的當前狀態。可選地,傳遞kTrue值將表示將傳入執行zoom(縮放)命令來改變視點以擴展圖紙映象的邊界。 AcApLayoutManager::updateLayoutTabs函數 virtual void updateLayoutTabs() = 0; 這個函數重生布局標簽來將它們更新至它們表示的AcDbLayout對象的當前狀態。 | |
AcDbArc類
AcDbArc類表示AutoCAD中的弧實體。
繼承自
AcDbCurve
包含文件
dbents.h
參見
AcDbObject, AcDbEntity, AcGePoint3d, AcGeVector3d
成員
AcDbArc建構器和析構器
AcDbArc::~AcDbArc 函數
~AcDbArc();
析構器。
AcDbArc::AcDbArc 函數
AcDbArc(
const AcGePoint3d& center,
double radius,
double startAngle,
double endAngle);
center
輸入弧的中點
radius
輸入弧的半徑
startAngle
輸入弧的開始角
endAngle
輸入弧的終止角個建構器使用傳遞的值創建一個弧。center必須在WCS坐標中。弧使用(0,0,1)作為法向矢量和0.0作為厚度初始化。
--------------------------------------------------------------------------------
AcDbArc(
const AcGePoint3d& center,
const AcGeVector3d& normal,
double radius,
double startAngle,
double endAngle);
center
輸入弧的中點
normal
輸入包含弧的平面的法向矢量
radius
輸入弧的半徑
startAngle
輸入弧的開始角
endAngle
輸入弧的終止角
這個建構器使用傳遞的值創建一個弧。center必須在WCS坐標中。弧使用0.0作為厚度初始化。
--------------------------------------------------------------------------------
AcDbArc();
默認建構器。初始化將法向矢量初始化為(0,0,1),中點初始化為(0,0,0),
半徑、開始角、終止角初始化為0.0。在第一次關閉弧之間,半徑需要改變為一個非零值。中點和法向矢量必須在WCS坐標中。
AcDbArc編輯函數
AcDbArc::setCenter 函數
Acad::ErrorStatus
setCenter(
const AcGePoint3d& center);
center
輸入弧的中點
此函數設置center為弧的中心。Center必須在WCS坐標中。
中點值對應于DXF群組碼10的WCS值。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbArc::setEndAngle 函數
Acad::ErrorStatus
setEndAngle(
double endAngle);
endAngle
輸入弧的終止角(弧度)
此函數設置endAngle為弧的終止角。endAngle必須為弧度。角度相對于弧的OCS的X軸,
如視線沿Z軸指向原點則正角度方向為逆時針。OCS的X軸使用弧的法向矢量、WCS的Z軸,以及任意的軸運算法則確定。
如果角度為負值,則弧仍以逆時針繪出,但從相反的方向度量。例如,4.7124弧度(270度)的弧與-1.5708弧度(-90度)相等。
終止角對應DXF群組碼51。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbArc::setNormal 函數
Acad::ErrorStatus
setNormal(
const AcGeVector3d& normal);
normal
輸入弧的法向矢量
此函數設置normal指向包含弧的平面的法向矢量。normal必須在WCS坐標中且必須為非零長度。
法向矢量值對應DXF群組碼210。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbArc::setRadius 函數
Acad::ErrorStatus
setRadius(
double radius);
radius
輸入弧的半徑
此函數設置radius為弧的半徑。Radius必須大于0。
半徑值對應DXF群組碼40。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbArc::setStartAngle 函數
Acad::ErrorStatus
setStartAngle(
double startAngle);
startAngle
輸入弧的開始角(弧度)
此函數設置startAngle為弧的終止角。startAngle必須為弧度。角度相對于弧的OCS的X軸,如視線沿Z軸指向原點則正角度方向為逆時針。OCS的X軸使用弧的法向矢量、WCS的Z軸,以及任意的軸運算法則確定。
如果角度為負值,則弧仍以逆時針繪出,但從相反的方向度量。例如,4.7124弧度(270度)的弧與-1.5708弧度(-90度)相等。
開始角對應DXF群組碼50。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbArc::setThickness 函數
Acad::ErrorStatus
setThickness(
double thickness);
thickness
輸入弧的厚度
此函數設置thickness 為弧的厚度。厚度是弧沿它法向矢量方向(有些稱為拉伸方向)的標注。
厚度值對應DXF群組碼39。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbArc雜項函數
AcDbArc::getClassID 函數
virtual Acad::ErrorStatus
getClassID(
CLSID* pClsid) const;
pClsid
未說明
Description to come。
AcDbArc::getTransformedCopy 函數
DBCURVE_METHODS Acad::ErrorStatus
getTransformedCopy(
const AcGeMatrix3d& xform,
AcDbEntity*& ent) const;
xform
未說明
ent
未說明
Description to come。
AcDbArc查詢函數
AcDbArc::center 函數
AcGePoint3d
center() const;
此函數返回弧在WCS坐標中的中點。
中點值對應于DXF群組碼10的WCS值。
AcDbArc::endAngle 函數
double
endAngle() const;
此函數返回弧的終止角的弧度。角度相對于弧的OCS的X軸,
如視線沿Z軸指向原點則正角度方向為逆時針。OCS的X軸使用弧的法向矢量、
WCS的Z軸,以及任意的軸運算法則確定。
終止角對應DXF群組碼51。
AcDbArc::normal 函數
AcGeVector3d
normal() const;
此函數在WCS坐標中返回弧的單位法向矢量。normal必須在WCS坐標中且必須為非零長度。
法向矢量值對應DXF群組碼210。
AcDbArc::radius 函數
double
radius() const;
此函數返回弧的半徑。
半徑值對應DXF群組碼40。
AcDbArc::startAngle 函數
double
startAngle() const;
此函數以弧度返回弧的終止角。角度相對于弧的OCS的X軸,如視線沿Z軸指向原點則正角度方向為逆時針
。OCS的X軸使用弧的法向矢量、WCS的Z軸,以及任意的軸運算法則確定。
開始角對應DXF群組碼50。
AcDbArc::thickness 函數
double
thickness() const;
此函數返回弧的厚度。厚度是弧沿它法向矢量方向(有些稱為拉伸方向)的標注。
厚度值對應DXF群組碼39。
?
AcDbFilter類
此類定義了一個“查詢”。這提供了AcDbCompositeFilteredBlockIterator的關鍵字,與AcDbCompositeFilteredBlockIterator相關的索引通過indexClass()方法取得。
AcDbSpatialFilter::indexClass()方法將返回AcDbSpatialIndex::desc()。
需要提供它們自己的索引方式的應用程序需要提供以下三個類的版本:
AcDbIndex
AcDbFilter
AcDbFilteredBlockIterator
繼承自
AcDbObject
包含文件
dbfilter.h
參見
AcDbIndexFilterManager, AcDbIndex
成員
AcDbFilter建構器和析構器
AcDbFilter::~AcDbFilter 函數
virtual
~AcDbFilter();
析構器。
AcDbFilter::AcDbFilter 函數
AcDbFilter();
默認建構器。
AcDbFilter函數
AcDbFilter::indexClass 函數
virtual AcRxClass *
indexClass() const;
此函數用于AcDbCompositeFilteredBlockIterator的init()方法中。
例如,如果過濾在裁剪的xref的圖形的重生以建立索引遍歷
器定義過程中過濾生效,則此函數于內部使用。
返回此過濾器的AcDbIndex的類描述符。
?
AcDbRasterImage類
AcDbRasterImage實體(或“圖像實體”)與AcDbRasterImageDef對象(或“圖像定義對象”)一起使用,
以處理AutoCAD中的光柵圖像。這兩個類之間的關系就象一個AutoCAD塊定義對象和一個塊插入實體之間的關系。
以下的OMT圖表示了圖像對象模型的結構。
AutoCAD圖像對象模型
圖像實體是一個可繪的、可選擇的AutoCAD實體,以一個特定點和方向將一個光柵圖像放置在模型或圖紙空間中。
圖像實體鏈接至一個圖像定義對象,并將顯示和繪出圖像的需要的圖像處理操作的請求送至這個對象。因為圖像定義對象管理所有圖像信息,所有圖像實體相對較 小。除了圖像位置和方向外,它還包括一個裁剪區域、圖像淡出、對比度和亮度參數以其他的典型的AcDbEntity屬性如層和顏色。
兩個或更多的圖像實體可被鏈接至一個圖像定義實體。因為每個圖像實體都有自己的裁剪區域,
所以這是一個在圖形中不同的位置顯示一個光柵圖像的不同區域的有效的方法。
AcDbRasterImage實體有時必須在兩個坐標系統之間轉換:AcDbEntities的3D模型坐標和
AcDbRasterImageDef的2D像素坐標。為了這個目的,圖像實體包含一個在3D世界坐標中
指定的平面邊界矩形,描述了它在空間中的原始圖形的邊界。有幾個API函數可用于在像素和模型坐標之間進行轉換。
圖像定義對象與塊定義一樣在“幕后”工作,儲存至源圖像文件的鏈接并管理用于顯示和
繪圖的底層圖像處理。圖像定義對象儲存在一個特殊的名為ISM_RASTER_IMAGE_DICT的AcDbDictionary中。
這些對象不是AutoCAD實體,因此它們不能被顯示或直接由最終用戶選擇。它們只處理2D像素坐標,
因此所有圖像處理請求必須表示為2D操作。
圖像處理操作如縮放和旋轉圖形用于顯示是由Autodesk的圖像引擎執行。圖像引擎有
自己眾多的開發人員的API,在其上可建立復雜的圖像處理的應用程序。(Autodesk圖像
引擎的信息可通過Autodesk開發人員程序取得)。
鏈接至ism.lib
AcDbRasterVariables類在一個ObjectARX應用程序中調用ism.arx執行。應用程序必須
鏈接至ObjectARX API庫ism.lib以使用針對此類的任何方法。
注意:此類上的AcDbObject可被訪問而無需鏈接至ism.lib。只須簡單地將對象的指針
(例如,acdbOpenObject返回的)轉換為AcDbObject類。
作為復合實體的AcDbRasterImage
AcDbRasterImage實體不能被自己使用。它必須鏈接至一個AcDbRasterImageDef對象,
通過調用AcDbRasterImage::setImageDefId顯示圖像。而且,必須建構一個AcDbRasterImageDefReactor并鏈接至AcDbRasterImage實體和AcDbRasterImageDef對象。
(顯示如何創建和鏈接AcDbRasterImage, AcDbRasterImageDef和AcDbRasterImageDefReactor
的范例代碼在ObjectARX開發包的samples\ism文件夾下)。
庫文件
ism.lib
繼承自
AcDbImage
包含文件
imgent.h
參見
AcDbObject, AcDbEntity, AcDbImage, AcDbRasterImageDef, AcDbRasterImageDefReactor,
AcDbRasterVariables, Image Support Module Overview
成員
AcDbRasterImage和AcDbRasterImageDef鏈接函數
AcDbRasterImage::imageDefId 函數
virtual AcDbObjectId
imageDefId() const;
未公布
AcDbRasterImage::reactorId 函數
virtual AcDbObjectId
reactorId() const;
未公布
AcDbRasterImage::setImageDefId 函數
virtual Acad::ErrorStatus
setImageDefId(
AcDbObjectId imageId);
imageId 未公布
未公布
AcDbRasterImage::setReactorId 函數
virtual void
setReactorId(
AcDbObjectId reactorId);
reactorId 未公布
未公布
?
AcDbText類
AcDbText類表示AutoCAD中的TEXT實體。
繼承自
AcDbEntity
包含文件
dbents.h
參見
AcDbObject, AcDbAttribute, AcDbAttributeDefinition, AcDbShape, AcGePoint3d, AcGeVector3d
成員
AcDbText建構器和析構器
AcDbText::~AcDbText 函數
~AcDbText();
析構器。
AcDbText::AcDbText 函數
AcDbText(
const AcGePoint3d& position,
const char* text,
AcDbObjectId style = AcDbObjectId::kNull,
double height = 0,
double rotation = 0);
position 輸入文本插入點
text 輸入文本字符串
style 輸入要使用的AcDbTextStyleTableRecord的對象ID
height 輸入形的高度
rotation 輸入旋轉角
此建構器初始化文本實體。
?
AcDbLine類
AcDbLine類表示AutoCAD中的線實體。一個線對象是由它的開始點,終止點和法向矢量指定的一個3D對象。另外,線對象支持沿其法向矢量方向的厚度(即,高度或“拉伸”)。
繼承自
AcDbCurve
包含文件
dbents.h
參見
AcDbObject, AcDbEntity, AcGePoint3d, AcGeVector3d
成員
AcDbLine建構器和析構器
AcDbLine::~AcDbLine 函數
~AcDbLine();
建構器。
AcDbLine::AcDbLine 函數
AcDbLine(
const AcGePoint3d& start,
const AcGePoint3d& end);
start
輸入線的起點(WCS坐標中)
end
輸入線的終點(WCS坐標中)
此建構器初始化線對象使用start作為起點,以end作為終點。兩個點都必須在WCS坐標中。
AcDbLine();
默認建構器。初始化法向矢量為(0,0,1),起點和終點為(0,0,0),厚度為0.0。所有坐標必須在WCS中。
AcDbLine編輯函數
AcDbLine::setEndPoint 函數
Acad::ErrorStatus
setEndPoint(
const AcGePoint3d& endPt);
endPt
輸入作為線的終點的一個WCS點
將endPt設為線的新終點。endPt必須在WCS坐標中。
終點值對應DXF群組碼11。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbLine::setNormal 函數
Acad::ErrorStatus
setNormal(
const AcGeVector3d& normal);
normal
輸入作為線的法向矢量的的一個WCS矢量
將normal設為線的法向矢量。normal必須在WCS坐標中。
法向矢量對應DXF群組碼210。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbLine::setStartPoint 函數
Acad::ErrorStatus
setStartPoint(
const AcGePoint3d& startPt);
startPt
輸入作為線的終點的一個WCS點
將startPt設為線的新起點。startPt必須在WCS坐標中。
起點值對應DXF群組碼10。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbLine::setThickness 函數
Acad::ErrorStatus
setThickness(
double thickness);
thickness
輸入線的新的厚度值
將thickness設為線的厚度值。厚度值是線沿其法向矢量方向(有時也稱為拉伸方向)的長度。
厚度值對應DXF群組碼39。
如果成功返回Acad::eOk,如果傳遞的數據非法則返回Acad::eInvalidInput。
AcDbLine其他函數
AcDbLine::getClassID 函數
virtual Acad::ErrorStatus
getClassID(
CLSID* pClsid) const;
AcDbLine::getOffsetCurvesGivenPlaneNormal 函數
Acad::ErrorStatus
getOffsetCurvesGivenPlaneNormal(
const AcGeVector3d& normal,
double offsetDist,
AcDbVoidPtrArray& offsetCurves) const;
AcDbLine::getTransformedCopy 函數
DBCURVE_METHODS Acad::ErrorStatus
getTransformedCopy(
const AcGeMatrix3d& xform,
AcDbEntity*& ent) const;
AcDbLine查詢函數
AcDbLine::endPoint 函數
AcGePoint3d
endPoint() const;
此函數在WCS坐標中返回線的終點。
終點值對象DXF群組碼11。
AcDbLine::normal 函數
AcGeVector3d
normal() const;
此函數在WCS坐標中返回線的單位法向矢量。
法向矢量值對應DXF群組碼210。
AcDbLine::startPoint 函數
AcGePoint3d
startPoint() const;
此函數在WCS坐標中返回線的起點。
起點值對應DXF群組碼10。
AcDbLine::thickness 函數
double
thickness() const;
此函數返回線的厚度值。厚度值是線沿其法向矢量方向(有時也稱為拉伸方向)的長度。
厚度值對應DXF群組碼39。
?
AcDbSpline類
此類執行對AutoCAD的SPLINE實體進行操作。
AcDbSpline類的對象使用一個內嵌的gelib對象儲存實際的樣條曲線信息。樣條曲線自身可是一條通過“擬合點”集的簡單的曲線擬合(指定的誤差 可能為0),或是一條NURBS樣條曲線(即,用于定義樣條曲線路徑的一個控制點、節點和權值的集合)。在內部,一個曲線擬合的樣條曲線仍有NURBS數 據,然而反過來則不正確。
以下的書是樣條曲線知識的基礎:
Curves and Surfaces for CAGD by Gerald Farin
Mathematical Elements for Computer Graphics by David Rogers and Alan Adams
An Introduction To Splines For Use In Computer Graphics & Geometric Modeling by Richard H. Bartels, John C. Beatty, and Brian A Barsky
繼承自
AcDbCurve
包含文件
dbspline.h
提示
AcDbSpline類提供函數查詢和設置一條曲線擬合的樣條曲線和一個函數集合用于查詢和設置一條NURBS樣條曲線。不建議在一條NURBS樣條曲線 上調用曲線擬合函數或在一條曲線擬合的樣條曲線上調用NURBS函數。這將可能導致無效的數據或更壞的情況發生。 AcDbSpline::hasFitData()方法可用于確定處理的樣條曲線的類型。
使用一個連續序列的相同控制點創建一條NURBS樣條曲線將導致一條不可用的樣條曲線,因為連續性的問題。
AcDbSpline建構器和析構器
AcDbSpline::~AcDbSpline 函數
virtual
~AcDbSpline();
析構器。
AcDbSpline::AcDbSpline 函數
AcDbSpline(
const AcGePoint3dArray& points,
int order = 4,
double fitTolerance = 0.0);
AcDbSpline(
const AcGePoint3dArray& points,
const AcGeVector3d& startTangent,
const AcGeVector3d& endTangent,
int order = 4,
double fitTolerance = 0.0);
AcDbSpline(
int degree,
Adesk::Boolean rational,
Adesk::Boolean closed,
Adesk::Boolean periodic,
const AcGePoint3dArray& controlPoints,
const AcGeDoubleArray& knots,
const AcGeDoubleArray& weights,
double controlPtTol = 0.0,
double knotTol = 0.0);
AcDbSpline(
const AcGePoint3d& center,
const AcGeVector3d& unitNormal,
const AcGeVector3d& majorAxis,
double radiusRatio,
double startAngle = 0.0,
double endAngle = 6.28318530717958647692);
AcDbSpline();
默認建構器。
?
AcDbEllipse類此類表示AutoCAD中的橢圓實體。它包含了創建、修改了獲取橢圓屬性的方法。
繼承自
AcDbCurve
包含文件
dbelipse.h
參見
AcDbEntity, AcGePoint3d, AcGeVector3d
成員
AcDbEllipse建構器和析構器
AcDbEllipse::~AcDbEllipse 函數
virtual
~AcDbEllipse();
析構器。
AcDbEllipse::AcDbEllipse 函數
AcDbEllipse(
const AcGePoint3d& center,
const AcGeVector3d& unitNormal,
const AcGeVector3d& majorAxis,
double radiusRatio,
double startAngle = 0.0,
double endAngle = 6.28318530717958647692);
center
輸入橢圓的中點
unitNormal
輸入指定法向矢量的矢量。這確定了橢圓的平面。
majorAxis
輸入表示橢圓1/2主軸的矢量
radiusRatio
輸入長軸對短軸的比
startAngle
輸入橢圓的起始角(弧度)
endAngle
輸入橢圓的終止角(弧度)
這個建構器使用傳遞的值創建一個橢圓。center、unitNormal和majorAxis用于計算起始點。majorAxis矢量表示橢圓的主軸的 一半(即,從中點至橢圓的起始點),而且還是startAngle和endAngle的零度角。如果視線從法向矢量向下,則正角度為逆時針(即,右手定 則)。startAngle為0且endAngle為2pi將生成一個封閉的橢圓。
radiusRatio必須在1E-6至1.0范圍內。
unitNormal與自身的點積及majorAxis與自身的點積必須大于1E-12。
majorAxis必須垂直于1E-6以內法向矢量 must perpendicular to normal within.
startAngle與endAngle差必須大于1E-6。
如果任何對參數的要求不能滿足,則橢圓的gelib對象不會創建且此建構器將與默認的建構器一樣工作(即,傳遞的值將不被使用且橢圓的數據查詢方法將返回無效值)。
AcDbEllipse::isNull()方法可用于確定此建構器是否成功地使用傳遞的值初始化橢圓。如果isNull()返回Adesk::kFalse,則初始化成功。
AcDbEllipse();
此類的默認建構器。初始化XY平面上的圓的半徑為1,圓心為(0,0,0)。
AcDbEllipse編輯函數
AcDbEllipse::set 函數
Acad::ErrorStatus
set(
const AcGePoint3d& center,
const AcGeVector3d& unitNormal,
const AcGeVector3d& majorAxis,
double radiusRatio,
double startAngle = 0.0,
double endAngle = 6.28318530717958647692);
center
輸入橢圓的中點(WCS坐標中)
unitNormal
輸入法向矢量(WCS坐標中),其定義了橢圓所在的平面
majorAxis
輸入橢圓的長軸(WCS坐標中)
radiusRatio
輸入需要的長軸與短軸之比
startAngle
輸入橢圓的起始角(弧度)
endAngle
輸入橢圓的終止角(弧度)
此函數使用參數中的指定值設置橢圓的屬性。
center、unitNormal和majorAxis用于計算起始點。majorAxis矢量表示橢圓的主軸的一半(即,從中點至橢圓的起始點),而 且還是startAngle和endAngle的零度角。如果視線從法向矢量向下,則正角度為逆時針(即,右手定則)。startAngle為0且 endAngle為2pi將生成一個封閉的橢圓。
radiusRatio必須在1E-6至1.0范圍內。
unitNormal與自身的點積及majorAxis與自身的點積必須大于1E-12。
majorAxis必須垂直于1E-6以內法向矢量 must perpendicular to normal within.
startAngle與endAngle差必須大于1E-6。
如果成功返回Acad::eOk。
如果有任何參數不能滿足,則此方法失敗且返回Acad::eGeneralModelingFailure。
AcDbEllipse::setCenter 函數
Acad::ErrorStatus
setCenter(
const AcGePoint3d& center);
center
輸入橢圓的新的中點
設置center(WCS坐標中)為橢圓的中點。
如果成功返回Acad::eOk。否則返回Acad::eGeneralModelingFailure。
AcDbEllipse::setEndAngle 函數
Acad::ErrorStatus
setEndAngle(
double endAngle);
endAngle
輸入橢圓的新的終止角度(弧度)
設置endAngle為橢圓的終止角度。
如果成功返回Acad::eOk。
如果橢圓沒有任何gelib對象(即,AcDbEllipse::isNull()返回Adesk::kTrue),則返回Acad::eDegenerateGeometry。
AcDbEllipse::setEndParam 函數
Acad::ErrorStatus
setEndParam(
double endParam);
endParam
輸入橢圓新的終止參數
設置endParam為橢圓的新的終止參數。如果endParam小于當前的開始參數,則以2pi為步距增加直至大于當前的開始參數。
如果成功返回Acad::eOk。
如果橢圓沒有任何gelib對象(即,AcDbEllipse::isNull()返回Adesk::kTrue),則返回Acad::eDegenerateGeometry。
AcDbEllipse::setRadiusRatio 函數
Acad::ErrorStatus
setRadiusRatio(
double ratio);
ratio
輸入橢圓長徑與短徑比
設置ratio為橢圓的新的長短徑比。Ratio必須在1e-6和1.0之間。
如果成功返回Acad::eOk。
如果橢圓沒有任何gelib對象(即,AcDbEllipse::isNull()返回Adesk::kTrue),則返回Acad::eDegenerateGeometry。
AcDbEllipse::setStartAngle 函數
Acad::ErrorStatus
setStartAngle(
double startAngle);
startAngle
輸入橢圓的新的開始角度(弧度)
設置startAngle為橢圓的新的開始角度。
如果成功返回Acad::eOk。
如果橢圓沒有任何gelib對象(即,AcDbEllipse::isNull()返回Adesk::kTrue),則返回Acad::eDegenerateGeometry。
AcDbEllipse::setStartParam 函數
Acad::ErrorStatus
setStartParam(
double startParam);
startParam
輸入橢圓的新的開始參數
設置startParam為橢圓的新的始參數。如果startParam大于當前終止參數,則以2pi為步距減小直至小于當前的終止參數。
如果成功返回Acad::eOk,否則返回Acad::eGeneralModelingFailure。
AcDbEllipse雜項函數
AcDbEllipse::getClassID 函數
virtual Acad::ErrorStatus
getClassID(
CLSID* pClsid) const;
pClsid
Description to com
AcDbEllipse::getGripPoints 函數
virtual DBCURVE_METHODS Acad::ErrorStatus
getGripPoints(
AcGePoint3dArray& gripPoints,
AcDbIntArray& osnapMasks,
AcDbIntArray& geomIds) const;
Description to come。
AcDbEllipse::getTransformedCopy 函數
virtual Acad::ErrorStatus
getTransformedCopy(
const AcGeMatrix3d& xform,
AcDbEntity*& ent) const;
Description to come。
AcDbEllipse::intersectWith 函數
virtual Acad::ErrorStatus
intersectWith(
const AcDbEntity* ent,
AcDb::Intersect intType,
const AcGePlane& projPlane,
AcGePoint3dArray& points,
int thisGsMarker = 0,
int otherGsMarker = 0) const;
virtual Acad::ErrorStatus
intersectWith(
const AcDbEntity* ent,
AcDb::Intersect intType,
AcGePoint3dArray& points,
int thisGsMarker = 0,
int otherGsMarker = 0) const;
Description to come。
轉載于:https://www.cnblogs.com/zhanglibo0626/archive/2010/06/05/1752169.html
總結
- 上一篇: Openstack window 10
- 下一篇: 通过注册表修改远程桌面默认3389端口