APIDb_StartDrawingDataID
드로잉 데이터 생성을 위해 임시 데이터베이스로 요소 생성을 리다이렉트합니다.
GSErrCode ACAPI_Database ( APIDb_StartDrawingDataID, double* dScale, API_PenType** api_pens );
파라미터
- dScale
- [in] 선택적인 파라미터입니다. (기본값은 1.0); 페이퍼에서 모델로의 스케일을 정의합니다. 예를 들어, 1:100 스케일링의 경우, 100을 전달합니다.
- api_pens
- [in] 선택적인 파라미터입니다. (기본 펜 테이블은 현재 작업공간으로부터 옴 (레이아웃 또는 모델)); 이 드로잉 데이터에 대하여 사용할 펜 테이블을 정의합니다.
이것은 처음 (인덱스 0) 레코드로부터 시작하여 정확히 255개의 API_PenType 레코드들을 포함해야 합니다.
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_NESTING
- 이 함수를 호출하는 것은 중첩(nested)될 수 없습니다; APIDb_StopDrawingDataID로 예전 드로잉 데이터를 마쳐야 합니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수는 드로잉 데이터에 대한 내부 스토어를 엽니다. (드로잉 요소의 내부 데이터)
이후의 요소 생성 함수들은 생성된 요소들을 이 스토어에 넣을 것입니다.
2D 요소들만 허용됩니다. (그림도 포함됨)
이 드로잉 데이터는 나중에 API_ElementMemo의 drawingData
멤버에서
ACAPI_Element_Create로 전달될 수 있습니다.
펜들은 api_pens
파라미터에서 앞쪽으로 전달되어야 합니다. 나중에 변경할 수 없습니다.
이러한 제한은 데이터 스토어의 내부 설정으로부터 옵니다.
예제
// ----------------------------------------------------------------------------- // Wraps importing data into IDF // ----------------------------------------------------------------------------- class IDFSession { private: bool inited; public: explicit IDFSession () { inited = (ACAPI_Database (APIDb_StartDrawingDataID, NULL, NULL) == NoError); } ~IDFSession () { if (inited) { GSPtr outIDFData = NULL; if (GetIDFData (&outIDFData, NULL)) BMKillPtr (&outIDFData); } } bool GetIDFData (GSPtr *outIDFData, API_Box *bounds) { if (!inited || outIDFData == NULL) return false; bool ret = (ACAPI_Database (APIDb_StopDrawingDataID, outIDFData, bounds) == NoError); inited = false; return ret; } }; GSErrCode Import::Do () { IDFSession idfSession; // 1 GSErrCode ret = this->ReadAction::Do (); // 2 if (ret == NoError) { API_Box bounds = { 0.0, 0.0, 0.0, 0.0 }; GSPtr idfData = NULL; if (idfSession.GetIDFData (&idfData, &bounds)) { // 3 PlaceDrawing (idfData, bounds); // 4 } } return ret; }코멘트:
- IDF 세션을 초기화합니다; 이후 요소 생성을 드로잉 데이터로 리다이렉트합니다.
- 외부 파일로부터 요소들을 읽어 드로잉 데이터로 넣습니다.
- IDF 세션을 중지합니다. 드로잉 데이터 및 경계들을 가져옵니다. (내부적으로 계산됨)
- 드로잉 요소를 현재 데이터베이스에 배치합니다. (내부적으로 ACAPI_Element_Create를 호출함)
요구사항
- 버전: API 10 또는 이후
- 헤더: APIdefs_Database.h
참고사항
API_PenType
APIDb_StopDrawingDataID
ACAPI_Element_Create, API_ElementMemo
ACAPI_Database
API 함수