Endtype Controller

interface ICwAPI3DEndtypeController

Public Functions

virtual ICwAPI3DString *getLastError(int32_t *aErrorCode) = 0

Gets the last error message.

Parameters:

aErrorCode[out] [int32_t*] A pointer to an integer where the error code will be stored.

Returns:

[ICwAPI3DString*] A string containing the last error message.

virtual ICwAPI3DString *getEndtypeName(endtypeID aEndtypeId) = 0

Gets the endtype name by endtype id.

Example:
// Define the endtype ID
const endtypeID endtypeID = 12345;

// Get the name of the endtype
const character* endtypeName = aFactory.getEndtypeController()->getEndtypeName(endtypeID);

// Output the result
printf("Endtype name: %s\n", endtypeName);

Parameters:

aEndtypeId[in] [endtypeID] The endtype id.

Returns:

[ICwAPI3DString*] The endtype name.

virtual endtypeID getEndtypeID(const character *aName) = 0

Gets the endtype id by endtype name.

Example:
// Retrieve the ID of an existing endtype by its name
const character* endtypeName = L"Tenon_100x50";
const endtypeID endtypeIDValue = aFactory.getEndtypeController()->getEndtypeID(endtypeName);

// Output the retrieved ID
printf("Endtype ID: %llu\n", endtypeIDValue);

Parameters:

aName[in] [const character*] The endtype name.

Returns:

[endtypeID] The wanted endtype id.

virtual endtypeID getEndtypeIdStart(elementID aElementId) = 0

Gets the endtype id of the start face.

Example:
// Get all identifiable elements
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

// Take the first element
const elementID element = selectedElements->at(0);

// Get the start endtype ID
const endtypeID startEndtypeID = aFactory.getEndtypeController()->getEndtypeIdStart(element);

// Output the result
printf("Start endtype ID: %llu\n", startEndtypeID);

Parameters:

aElementId[in] [elementID] The element id.

Returns:

[endtypeID] The wanted endtype id.

virtual endtypeID getEndtypeIdEnd(elementID aElementId) = 0

Gets the endtype id of the end face.

Example:
// Get all identifiable elements
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

// Take the first element
const elementID element = selectedElements->at(0);

// Get the end endtype ID for the element
const endtypeID endEndtypeID = aFactory.getEndtypeController()->getEndtypeIdEnd(element);

// Output the result
printf("End endtype ID: %llu\n", endEndtypeID);

Parameters:

aElementId[in] [elementID] The element id.

Returns:

[endtypeID] The wanted endtype id.

virtual endtypeID getEndtypeIdFac(elementID aElementId, uint32_t aFaceNumber) = 0

Gets the endtype id of a face with the face number.

Example:
// Get all identifiable elements
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

// Take the first element
const elementID element = selectedElements->at(0);

// Define the face number
const int faceNumber = 1;

// Get the facet endtype ID for the specified face
const endtypeID facetEndtypeID = aFactory.getEndtypeController()->getEndtypeIDFac(element, faceNumber);

// Output the result
printf("Facet endtype ID: %llu\n", facetEndtypeID);

Note

Endtypes can only be set on faces that are placed at start or end points. Endtypes cannot be placed on arbitrary faces.

Parameters:
  • aElementId[in] [elementID] The element id.

  • aFaceNumber[in] [uint32_t] The face number. 0 <= aFaceNumber < element face count.

Returns:

[endtypeID] The wanted endtype id.

virtual ICwAPI3DString *getEndtypeNameStart(elementID aElementId) = 0

Gets the endtype name of the start face.

Example:
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

const elementID element = selectedElements->at(0);
const character* startName = aFactory.getEndtypeController()->getEndtypeNameStart(element);
printf("Start endtype name: %s\n", startName);

Parameters:

aElementId[in] [elementID] The element id.

Returns:

[ICwAPI3DString*] The endtype name of the start face.

virtual ICwAPI3DString *getEndtypeNameEnd(elementID aElementId) = 0

Gets the endtype name of the end face.

Example:
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

const elementID element = selectedElements->at(0);
const character* endName = aFactory.getEndtypeController()->getEndtypeNameEnd(element);
printf("End endtype name: %s\n", endName);

Parameters:

aElementId[in] [elementID] The element id.

Returns:

[ICwAPI3DString*] The endtype name of the end face.

virtual ICwAPI3DString *getEndtypeNameFac(elementID aElementId, uint32_t aFaceNumber) = 0

Gets the endtype name of the face with a number.

Example:
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

const elementID element = selectedElements->at(0);
const int faceNumber = 2;
const character* facetName = aFactory.getEndtypeController()->getEndtypeNameFac(element, faceNumber);
printf("Facet endtype name: %s\n", facetName);

Note

Endtypes can only be set on faces that are placed at start or end points. Endtypes cannot be placed on arbitrary faces.

Parameters:
  • aElementId[in] [elementID] The element id.

  • aFaceNumber[in] [uint32_t] The face number. 0 <= aFaceNumber < element face count.

Returns:

[ICwAPI3DString*] The endtype name of the face.

virtual void setEndtypeNameStart(elementID aElementId, const character *aName) = 0

Sets the endtype to start face by endtype name.

Example:
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

const elementID element = selectedElements->at(0);
const character* endtypeName = L"Tenon_100x50";
aFactory.getEndtypeController()->setEndtypeNameStart(element, endtypeName);

Parameters:
  • aElementId[in] [elementID] The element id.

  • aName[in] [const character*] The endtype name.

virtual void setEndtypeNameEnd(elementID aElementId, const character *aName) = 0

Sets the endtype to end face by endtype name.

Example:
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

const elementID element = selectedElements->at(0);
const character* endtypeName = L"Mortise_100x50";
aFactory.getEndtypeController()->setEndtypeNameEnd(element, endtypeName);

Parameters:
  • aElementId[in] [elementID] The element id.

  • aName[in] [const character*] The endtype name.

virtual void setEndtypeNameFac(elementID aElementId, const character *aName, uint32_t aFaceNumber) = 0

Sets the endtype to a face by endtype name.

Example:
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

const elementID element = selectedElements->at(0);
const character* endtypeName = L"Dovetail_60x30";
const int faceNumber = 2;
aFactory.getEndtypeController()->setEndtypeNameFacet(element, endtypeName, faceNumber);

Note

Endtypes can only be set on faces that are placed at start or end points. Endtypes cannot be placed on arbitrary faces.

Parameters:
  • aElementId[in] [elementID] The element id.

  • aName[in] [const character*] The endtype name.

  • aFaceNumber[in] [uint32_t] The face number. 0 <= aFaceNumber < element face count.

virtual void setEndtypeIdStart(elementID aElementId, endtypeID aEndtypeId) = 0

Sets the endtype to start face by endtype id.

Example:
ICwAPI3DEndtypeIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

ICwAPI3DEndtypeIDList* element = selectedElements->at(0);
const endtypeID endtypeId = 12345;
aFactory.getEndtypeController()->setEndtypeIdStart(element, endtypeId);

Parameters:
  • aElementId[in] [elementID] The element id.

  • aEndtypeId[in] [endtypeID] The endtype id.

virtual void setEndtypeIdEnd(elementID aElementId, endtypeID aEndtypeId) = 0

Sets the endtype to end face by endtype id.

Example:
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

ICwAPI3DElementID element = selectedElements->at(0);
const endtypeID endtypeId = 54321;
aFactory.getEndtypeController()->setEndtypeIdEnd(element, endtypeId);

Parameters:
  • aElementId[in] [elementID] The element id.

  • aEndtypeId[in] [endtypeID] The endtype id.

virtual void setEndtypeIdFac(elementID aElementId, endtypeID aEndtypeId, uint32_t aFaceNumber) = 0

Sets the endtype to a face by endtype id.

Example:
ICwAPI3DElementIDList* selectedElements = aFactory.getElementController()->getAllIdentifiableElementIDs();
if (selectedElements->count()) == 0) return;

ICwAPI3DElementID element = selectedElements->at(0);
const endtypeID endtypeId = 67890;
const int faceNumber = 3;
aFactory.getEndtypeController()->setEndtypeIdFacet(element, endtypeId, faceNumber);

Note

Endtypes can only be set on faces that are placed at start or end points. Endtypes cannot be placed on arbitrary faces.

Parameters:
  • aElementId[in] [elementID] The element id.

  • aEndtypeId[in] [endtypeID] The endtype id.

  • aFaceNumber[in] [uint32_t] The face number. 0 <= aFaceNumber < element face count.

virtual endtypeID createNewEndtype(const character *aEndtypeName, uint32_t aEndtypeId, const character *aFolderName) = 0

Creates a new Endtype.

Example:
// Create a new endtype with a custom name, ID, and folder
const character* endtypeName = L"Custom_Joint_80x40";
const endtypeID endtypeIDValue = 99999;
const character* folderName = L"Custom_Joints";

// Register the new endtype
const endtypeID newID = aFactory.getEndtypeController()->createNewEndtype(
    endtypeName,
    endtypeIDValue,
    folderName
);

// Output the newly created ID
printf("Created endtype with ID: %llu\n", newID);

Parameters:
  • aEndtypeName[in] [const character*] The new endtype name.

  • aEndtypeId[in] [uint32_t] The new endtype id.

  • aFolderName[in] [const character*] The new endtype folder.

virtual void clearErrors() = 0

Clears all errors.

virtual ICwAPI3DEndtypeIDList *getExistingTenonIds() = 0

Get the existing tenon endtype id list.

Example:
ICwAPI3DEndtypeIDList* tenonIds = aFactory.getEndtypeController()->getExistingTenonIds();
printf("Available tenon endtype IDs: %s", tenonIds);

Returns:

[ICwAPI3DEndtypeIDList*] List of existing tenon endtype id.

virtual ICwAPI3DEndtypeIDList *getExistingLengtheningIds() = 0

Get the existing lengthening endtype id list.

Example:
ICwAPI3DEndtypeIDList* lengtheningIds = aFactory.getEndtypeController()->getExistingLengtheningIds();
printf("Available lengthening endtype IDs: %s", lengtheningIds);

Returns:

[ICwAPI3DEndtypeIDList*] List of existing lengthening endtype id.

virtual ICwAPI3DEndtypeIDList *getExistingDovetailIds() = 0

Get the existing dovetail endtype id list.

Example:
ICwAPI3DEndtypeIDList* dovetailIds = aFactory.getEndtypeController()->getExistingDovetailIds();
printf("Available dovetail endtype IDs: %s", dovetailIds);

Returns:

[ICwAPI3DEndtypeIDList*] List of existing dovetail endtype id.

virtual ICwAPI3DEndtypeIDList *getExistingDovetailDadoIds() = 0

Get the existing dado endtype id list.

Example:
ICwAPI3DEndtypeIDList* dadoIds = aFactory.getEndtypeController()->getExistingDovetailDadoIds();
printf("Available dado endtype IDs: ");
for (int i = 0; i < dadoIds->count(); ++i) {
    printf("%d ", dadoIds->at(i));
}
printf("\n");

Returns:

[ICwAPI3DEndtypeIDList*] List of existing dado endtype id.

virtual ICwAPI3DEndtypeIDList *getExistingJapaneseTenonIds() = 0

Get the existing japanese-tenon endtype id list.

Example:
ICwAPI3DEndtypeIDList* japaneseTenonIds = aFactory.getEndtypeController()->getExistingJapaneseTenonIds();
printf("Available japanese-tenon endtype IDs: %s", japaneseTenonIds);

Returns:

[ICwAPI3DEndtypeIDList*] List of existing japanese-tenon endtype id.

virtual endtypeID startEndtypeDialog() = 0

Start endtype dialog.

Example:
const endtypeID selectedEndtypeId = aFactory.getEndtypeController()->startEndtypeDialog();
printf("User selected endtype ID: %d\n", selectedEndtypeId);

Returns:

[endtypeID] Selected endtype id.