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