Skip to main content
1-Visitor
Mar 9, 2021 4:18 PM UTC
Solved

Creo Object Toolkit, WCreateFeature

Hello, 

 

I'm trying to perform a simple feature creation opertaion using the wfcWSolid::WCreateFeature function in otk. 

The feature element tree has been generated using the cxx element tree generator provided by PTC and is meant to create a default coordinate system in a part. Here is the element tree def: 

 

wfcElements_ptr CreateDefaultCoord(pfcModel_ptr Model)
{
	wfcElements_ptr newElems = new wfcElements();
	wfcElement_ptr newElem;
	CreateElem localElem;
	otkxEnums localEnum;
	CollectionHelpers localCollnHelper;

	/*	 Element id:	386 : PRO_E_FEATURE_TREE	*/
	localElem.CreateCompoundElem(PRO_E_FEATURE_TREE, 0, newElems);

	/*	 Element id:	387 : PRO_E_FEATURE_TYPE	*/
	localElem.CreateIntegerElem(PRO_E_FEATURE_TYPE, 979, 1, newElems);

	/*	 Element id:	1964 : PRO_E_STD_FEATURE_NAME	*/
	localElem.CreateStringElem(PRO_E_STD_FEATURE_NAME, "CS0", 1, newElems);

	/*	 Element id:	2134 : PRO_E_CSYS_ORIGIN_CONSTRS	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIGIN_CONSTRS, 1, newElems);

	/*	 Element id:	2147 : PRO_E_CSYS_OFFSET_TYPE	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_OFFSET_TYPE, 0, 1, newElems);

	/*	 Element id:	3953 : PRO_E_CSYS_ONSURF_TYPE	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ONSURF_TYPE, 0, 1, newElems);

	/*	 Element id:	3954 : PRO_E_CSYS_DIM_CONSTRS	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_DIM_CONSTRS, 1, newElems);

	/*	 Element id:	2137 : PRO_E_CSYS_ORIENTMOVES	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIENTMOVES, 1, newElems);

	/*	 Element id:	3054 : PRO_E_CSYS_NORMAL_TO_SCREEN	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_NORMAL_TO_SCREEN, 0, 1, newElems);

	/*	 Element id:	3050 : PRO_E_CSYS_ORIENT_BY_METHOD	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENT_BY_METHOD, 0, 1, newElems);

	/*	 Element id:	2142 : PRO_E_CSYS_ORIENTSELAXIS1_REF	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIENTSELAXIS1_REF, 1, newElems);

	/*	 Element id:	3167 : PRO_E_CSYS_ORIENTSELAXIS1_REF_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS1_REF_OPT, 0, 1, newElems);

	/*	 Element id:	2143 : PRO_E_CSYS_ORIENTSELAXIS1_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS1_OPT, 0, 1, newElems);

	/*	 Element id:	3052 : PRO_E_CSYS_ORIENTSELAXIS1_FLIP	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS1_FLIP, 0, 1, newElems);

	/*	 Element id:	2144 : PRO_E_CSYS_ORIENTSELAXIS2_REF	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIENTSELAXIS2_REF, 1, newElems);

	/*	 Element id:	3168 : PRO_E_CSYS_ORIENTSELAXIS2_REF_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_REF_OPT, 0, 1, newElems);

	/*	 Element id:	2145 : PRO_E_CSYS_ORIENTSELAXIS2_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_OPT, 0, 1, newElems);

	/*	 Element id:	3053 : PRO_E_CSYS_ORIENTSELAXIS2_FLIP	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_FLIP, 0, 1, newElems);

	/*	 Element id:	4123 : PRO_E_CSYS_ORIENTSELAXIS2_ROT_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_ROT_OPT, 0, 1, newElems);

	/*	 Element id:	4124 : PRO_E_CSYS_ORIENTSELAXIS2_ROT	*/
	localElem.CreateDoubleElem(PRO_E_CSYS_ORIENTSELAXIS2_ROT, 0, 1, newElems);

	/*	 Element id:	3051 : PRO_E_CSYS_TYPE_MECH	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_TYPE_MECH, 0, 1, newElems);

	/*	 Element id:	3932 : PRO_E_CSYS_FOLLOW_SRF_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_FOLLOW_SRF_OPT, 0, 1, newElems);

	/*	 Element id:	6133 : PRO_E_CSYS_NAME_DISPLAY_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_NAME_DISPLAY_OPT, 1, 1, newElems);

	/*	 Element id:	6140 : PRO_E_CSYS_DISPLAY_ZOOM_DEP_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_DISPLAY_ZOOM_DEP_OPT, 0, 1, newElems);

	/*	 Element id:	6139 : PRO_E_CSYS_AXIS_LENGTH	*/
	localElem.CreateDoubleElem(PRO_E_CSYS_AXIS_LENGTH, 0, 1, newElems);

	return (newElems);
}

 

 

Below is the remaining code for creating the element tree and adding it to a part solid. The issue is that this code crashes at the WCreateFeature line: 

 

 

...
part = pfcPart::cast(wfcGetObjectFromHandle(wfcProMdlHandle, (void*)pro_part));

pfcModel_ptr model = pfcModel::cast(part);
wfcWSolid_ptr wSolid_ptr = wfcWSolid::cast(model);
#pragma endregion

#pragma region Create Coordinate System

wfcFeatCreateOptions_ptr featOpts = wfcFeatCreateOptions::create();
featOpts->append(wfcFeatCreateOption_nil);

wfcWRegenInstructions_ptr regenInstr = wfcWRegenInstructions::Create();

wfcElements_ptr elements = CreateDefaultCoord(model);
wfcElementTree_ptr elementTree = session->CreateElementTree(elements);
	
try
{
	wfcWFeature_ptr feature = wSolid_ptr->WCreateFeature(elementTree, featOpts, regenInstr); <-- Crash
}
catch (const std::exception& e)
{
	throw e;
}
...

 

 

Do you have any idea of why this does not work?

 

Kind Regards

Daniel

1-Visitor
Mar 26, 2021 9:26 AM UTC

Solved this issue by first creating dtm planes and then the coord using the following element tree:

 

wfcElements_ptr CreateFeature_7(pfcModel_ptr Model)
{
	wfcElements_ptr newElems = new wfcElements();
	wfcElement_ptr newElem;
	CreateElem localElem;
	otkxEnums localEnum;
	CollectionHelpers localCollnHelper;

	/*	 Element id:	386 : PRO_E_FEATURE_TREE	*/
	localElem.CreateCompoundElem(PRO_E_FEATURE_TREE, 0, newElems);

	/*	 Element id:	387 : PRO_E_FEATURE_TYPE	*/
	localElem.CreateIntegerElem(PRO_E_FEATURE_TYPE, 979, 1, newElems);

	/*	 Element id:	1964 : PRO_E_STD_FEATURE_NAME	*/
	localElem.CreateStringElem(PRO_E_STD_FEATURE_NAME, "CS1", 1, newElems);

	/*	 Element id:	2134 : PRO_E_CSYS_ORIGIN_CONSTRS	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIGIN_CONSTRS, 1, newElems);

	/*	 Element id:	2135 : PRO_E_CSYS_ORIGIN_CONSTR	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIGIN_CONSTR, 2, newElems);

	/*	 Element id:	2136 : PRO_E_CSYS_ORIGIN_CONSTR_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIGIN_CONSTR_REF, 3, Model, 1, 2, newElems);

	/*	 Element id:	2135 : PRO_E_CSYS_ORIGIN_CONSTR	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIGIN_CONSTR, 2, newElems);

	/*	 Element id:	2136 : PRO_E_CSYS_ORIGIN_CONSTR_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIGIN_CONSTR_REF, 3, Model, 1, 4, newElems);

	/*	 Element id:	2135 : PRO_E_CSYS_ORIGIN_CONSTR	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIGIN_CONSTR, 2, newElems);

	/*	 Element id:	2136 : PRO_E_CSYS_ORIGIN_CONSTR_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIGIN_CONSTR_REF, 3, Model, 1, 6, newElems);

	/*	 Element id:	2147 : PRO_E_CSYS_OFFSET_TYPE	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_OFFSET_TYPE, 0, 1, newElems);

	/*	 Element id:	3953 : PRO_E_CSYS_ONSURF_TYPE	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ONSURF_TYPE, 0, 1, newElems);

	/*	 Element id:	3954 : PRO_E_CSYS_DIM_CONSTRS	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_DIM_CONSTRS, 1, newElems);

	/*	 Element id:	2137 : PRO_E_CSYS_ORIENTMOVES	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIENTMOVES, 1, newElems);

	/*	 Element id:	3054 : PRO_E_CSYS_NORMAL_TO_SCREEN	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_NORMAL_TO_SCREEN, 0, 1, newElems);

	/*	 Element id:	3050 : PRO_E_CSYS_ORIENT_BY_METHOD	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENT_BY_METHOD, 0, 1, newElems);

	/*	 Element id:	2142 : PRO_E_CSYS_ORIENTSELAXIS1_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIENTSELAXIS1_REF, 1, Model, 1, 2, newElems);

	/*	 Element id:	3167 : PRO_E_CSYS_ORIENTSELAXIS1_REF_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS1_REF_OPT, 0, 1, newElems);

	/*	 Element id:	2143 : PRO_E_CSYS_ORIENTSELAXIS1_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS1_OPT, 0, 1, newElems);

	/*	 Element id:	3052 : PRO_E_CSYS_ORIENTSELAXIS1_FLIP	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS1_FLIP, 0, 1, newElems);

	/*	 Element id:	2144 : PRO_E_CSYS_ORIENTSELAXIS2_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIENTSELAXIS2_REF, 1, Model, 1, 4, newElems);

	/*	 Element id:	3168 : PRO_E_CSYS_ORIENTSELAXIS2_REF_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_REF_OPT, 0, 1, newElems);

	/*	 Element id:	2145 : PRO_E_CSYS_ORIENTSELAXIS2_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_OPT, 1, 1, newElems);

	/*	 Element id:	3053 : PRO_E_CSYS_ORIENTSELAXIS2_FLIP	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_FLIP, 0, 1, newElems);

	/*	 Element id:	4123 : PRO_E_CSYS_ORIENTSELAXIS2_ROT_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_ROT_OPT, 0, 1, newElems);

	/*	 Element id:	4124 : PRO_E_CSYS_ORIENTSELAXIS2_ROT	*/
	localElem.CreateDoubleElem(PRO_E_CSYS_ORIENTSELAXIS2_ROT, 0, 1, newElems);

	/*	 Element id:	3051 : PRO_E_CSYS_TYPE_MECH	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_TYPE_MECH, 0, 1, newElems);

	/*	 Element id:	3932 : PRO_E_CSYS_FOLLOW_SRF_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_FOLLOW_SRF_OPT, 0, 1, newElems);

	/*	 Element id:	6133 : PRO_E_CSYS_NAME_DISPLAY_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_NAME_DISPLAY_OPT, 1, 1, newElems);

	/*	 Element id:	6140 : PRO_E_CSYS_DISPLAY_ZOOM_DEP_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_DISPLAY_ZOOM_DEP_OPT, 0, 1, newElems);

	/*	 Element id:	6139 : PRO_E_CSYS_AXIS_LENGTH	*/
	localElem.CreateDoubleElem(PRO_E_CSYS_AXIS_LENGTH, 0, 1, newElems);


	return (newElems);
}

 

Thanks to everyone who participate in helping me out!

 

Regards

Daniel

10 replies

FV_01
Mar 10, 2021 6:34 PM UTC
wfcElements_ptr CreateDefaultCoord(pfcModel_ptr Model)

this one is questionable - returning a pointer to an object  which supposedly keeps a record of its references, while the pointed object goes out of scope... 

 

CreateElem localElem;

this one is also questionable - some kind of a 'helper' instance initiated on stack. Impossible to know if it is doing what it should be doing... 

 

would be a good idea to serialize elementTree  after this call:

wfcElementTree_ptr elementTree = session->CreateElementTree(elements);

 to see if a tree was populated and if it was a valid one.

 

also, enum's are from pro/toolkit and the code looks like it had been written in otk_cpp style.

Translate
1-Visitor
Mar 22, 2021 9:01 AM UTC

Your first point might have something to do with it, but my hesitation to believe so is that the code you've mentioned is created by PTC. 

 

Removing 

 

 

CreateElem localElem;

 

 

Equals the same error. 

A deserialized version looks like this:

 

 

<?xml version="1.0" encoding="UTF-8"?>
<PRO_E_FEATURE_TREE AppName="Pro/ENGINEER" AppVersion="6.0"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:noNamespaceSchemaLocation="ProTKFeature.xsd" type="compound">
 <PRO_E_FEATURE_TYPE type="int">PRO_FEAT_CSYS</PRO_E_FEATURE_TYPE>
 <PRO_E_STD_FEATURE_NAME type="wstring">CS0</PRO_E_STD_FEATURE_NAME>
 <PRO_E_CSYS_ORIGIN_CONSTRS type="array">
 </PRO_E_CSYS_ORIGIN_CONSTRS>
 <PRO_E_CSYS_OFFSET_TYPE type="int">0</PRO_E_CSYS_OFFSET_TYPE>
 <PRO_E_CSYS_ONSURF_TYPE type="int">0</PRO_E_CSYS_ONSURF_TYPE>
 <PRO_E_CSYS_DIM_CONSTRS type="array">
 </PRO_E_CSYS_DIM_CONSTRS>
 <PRO_E_CSYS_ORIENTMOVES type="array">
 </PRO_E_CSYS_ORIENTMOVES>
 <PRO_E_CSYS_NORMAL_TO_SCREEN type="int">0</PRO_E_CSYS_NORMAL_TO_SCREEN>
 <PRO_E_CSYS_ORIENT_BY_METHOD type="int">0</PRO_E_CSYS_ORIENT_BY_METHOD>
 <PRO_E_CSYS_ORIENTSELAXIS1_REF></PRO_E_CSYS_ORIENTSELAXIS1_REF>
 <PRO_E_CSYS_ORIENTSELAXIS1_REF_OPT type="int">0</PRO_E_CSYS_ORIENTSELAXIS1_REF_OPT>
 <PRO_E_CSYS_ORIENTSELAXIS1_OPT type="int">0</PRO_E_CSYS_ORIENTSELAXIS1_OPT>
 <PRO_E_CSYS_ORIENTSELAXIS1_FLIP type="int">0</PRO_E_CSYS_ORIENTSELAXIS1_FLIP>
 <PRO_E_CSYS_ORIENTSELAXIS2_REF></PRO_E_CSYS_ORIENTSELAXIS2_REF>
 <PRO_E_CSYS_ORIENTSELAXIS2_REF_OPT type="int">0</PRO_E_CSYS_ORIENTSELAXIS2_REF_OPT>
 <PRO_E_CSYS_ORIENTSELAXIS2_OPT type="int">0</PRO_E_CSYS_ORIENTSELAXIS2_OPT>
 <PRO_E_CSYS_ORIENTSELAXIS2_FLIP type="int">0</PRO_E_CSYS_ORIENTSELAXIS2_FLIP>
 <PRO_E_CSYS_ORIENTSELAXIS2_ROT_OPT type="int">0</PRO_E_CSYS_ORIENTSELAXIS2_ROT_OPT>
 <PRO_E_CSYS_ORIENTSELAXIS2_ROT type="double">0.000000</PRO_E_CSYS_ORIENTSELAXIS2_ROT>
 <PRO_E_CSYS_TYPE_MECH type="int">0</PRO_E_CSYS_TYPE_MECH>
 <PRO_E_CSYS_FOLLOW_SRF_OPT type="int">0</PRO_E_CSYS_FOLLOW_SRF_OPT>
 <PRO_E_CSYS_NAME_DISPLAY_OPT type="int">1</PRO_E_CSYS_NAME_DISPLAY_OPT>
 <PRO_E_CSYS_DISPLAY_ZOOM_DEP_OPT type="int">0</PRO_E_CSYS_DISPLAY_ZOOM_DEP_OPT>
 <PRO_E_CSYS_AXIS_LENGTH type="double">0.000000</PRO_E_CSYS_AXIS_LENGTH>
</PRO_E_FEATURE_TREE>

 

 

 

Further details are that the error is of class pfcXToolkitGeneralError.

Translate
FV_01
Mar 22, 2021 2:59 PM UTC

PRO_E_CSYS_ORIENTSELAXIS1_REF and PRO_E_CSYS_ORIENTSELAXIS2_REF must have 'selection' type in XML.

The shown XML output had listed them as 'null'

I would check this statement.

/*	 Element id:	2142 : PRO_E_CSYS_ORIENTSELAXIS1_REF	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIENTSELAXIS1_REF, 1, newElems);

 

This code does not match what the equivalent Pro/Toolkit code would or should be doing behind the scenes.

In Pro/Toolkit those elements should be created with ProElementReferenceSet with ProReference ref = NULL;  (in versions prior to Creo 4 one would need to allocate ref with ProReferenceAlloc(&ref); as well).

 

HIH.

Translate
RPN
18-Opal
Mar 25, 2021 7:36 AM UTC

You try this, with an empty part? I guess this feature requires to be in insert mode (if the part is not empty), and it should be feature #1. And the feature name needs to be unique as well, only to be mentioned. 

Translate
1-Visitor
Mar 25, 2021 9:15 AM UTC

This is done with a empty part, so the feature should be unique. 

Translate
FV_01
Mar 25, 2021 12:53 PM UTC

@Daniel_392053 wrote:

This is done with a empty part, so the feature should be unique. 


write a default csys feature tree into an xml file. Make a datum plane in an empty part and add a default csys after the plane with CreateElementTreeFromXML(...) . Delete the plane. 

 

Translate
Daniel_3920531-VisitorAuthorAnswer
1-Visitor
Mar 26, 2021 9:26 AM UTC

Solved this issue by first creating dtm planes and then the coord using the following element tree:

 

wfcElements_ptr CreateFeature_7(pfcModel_ptr Model)
{
	wfcElements_ptr newElems = new wfcElements();
	wfcElement_ptr newElem;
	CreateElem localElem;
	otkxEnums localEnum;
	CollectionHelpers localCollnHelper;

	/*	 Element id:	386 : PRO_E_FEATURE_TREE	*/
	localElem.CreateCompoundElem(PRO_E_FEATURE_TREE, 0, newElems);

	/*	 Element id:	387 : PRO_E_FEATURE_TYPE	*/
	localElem.CreateIntegerElem(PRO_E_FEATURE_TYPE, 979, 1, newElems);

	/*	 Element id:	1964 : PRO_E_STD_FEATURE_NAME	*/
	localElem.CreateStringElem(PRO_E_STD_FEATURE_NAME, "CS1", 1, newElems);

	/*	 Element id:	2134 : PRO_E_CSYS_ORIGIN_CONSTRS	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIGIN_CONSTRS, 1, newElems);

	/*	 Element id:	2135 : PRO_E_CSYS_ORIGIN_CONSTR	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIGIN_CONSTR, 2, newElems);

	/*	 Element id:	2136 : PRO_E_CSYS_ORIGIN_CONSTR_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIGIN_CONSTR_REF, 3, Model, 1, 2, newElems);

	/*	 Element id:	2135 : PRO_E_CSYS_ORIGIN_CONSTR	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIGIN_CONSTR, 2, newElems);

	/*	 Element id:	2136 : PRO_E_CSYS_ORIGIN_CONSTR_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIGIN_CONSTR_REF, 3, Model, 1, 4, newElems);

	/*	 Element id:	2135 : PRO_E_CSYS_ORIGIN_CONSTR	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIGIN_CONSTR, 2, newElems);

	/*	 Element id:	2136 : PRO_E_CSYS_ORIGIN_CONSTR_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIGIN_CONSTR_REF, 3, Model, 1, 6, newElems);

	/*	 Element id:	2147 : PRO_E_CSYS_OFFSET_TYPE	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_OFFSET_TYPE, 0, 1, newElems);

	/*	 Element id:	3953 : PRO_E_CSYS_ONSURF_TYPE	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ONSURF_TYPE, 0, 1, newElems);

	/*	 Element id:	3954 : PRO_E_CSYS_DIM_CONSTRS	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_DIM_CONSTRS, 1, newElems);

	/*	 Element id:	2137 : PRO_E_CSYS_ORIENTMOVES	*/
	localElem.CreateCompoundElem(PRO_E_CSYS_ORIENTMOVES, 1, newElems);

	/*	 Element id:	3054 : PRO_E_CSYS_NORMAL_TO_SCREEN	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_NORMAL_TO_SCREEN, 0, 1, newElems);

	/*	 Element id:	3050 : PRO_E_CSYS_ORIENT_BY_METHOD	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENT_BY_METHOD, 0, 1, newElems);

	/*	 Element id:	2142 : PRO_E_CSYS_ORIENTSELAXIS1_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIENTSELAXIS1_REF, 1, Model, 1, 2, newElems);

	/*	 Element id:	3167 : PRO_E_CSYS_ORIENTSELAXIS1_REF_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS1_REF_OPT, 0, 1, newElems);

	/*	 Element id:	2143 : PRO_E_CSYS_ORIENTSELAXIS1_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS1_OPT, 0, 1, newElems);

	/*	 Element id:	3052 : PRO_E_CSYS_ORIENTSELAXIS1_FLIP	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS1_FLIP, 0, 1, newElems);

	/*	 Element id:	2144 : PRO_E_CSYS_ORIENTSELAXIS2_REF	*/
	localElem.CreateSelectionElem(PRO_E_CSYS_ORIENTSELAXIS2_REF, 1, Model, 1, 4, newElems);

	/*	 Element id:	3168 : PRO_E_CSYS_ORIENTSELAXIS2_REF_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_REF_OPT, 0, 1, newElems);

	/*	 Element id:	2145 : PRO_E_CSYS_ORIENTSELAXIS2_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_OPT, 1, 1, newElems);

	/*	 Element id:	3053 : PRO_E_CSYS_ORIENTSELAXIS2_FLIP	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_FLIP, 0, 1, newElems);

	/*	 Element id:	4123 : PRO_E_CSYS_ORIENTSELAXIS2_ROT_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_ORIENTSELAXIS2_ROT_OPT, 0, 1, newElems);

	/*	 Element id:	4124 : PRO_E_CSYS_ORIENTSELAXIS2_ROT	*/
	localElem.CreateDoubleElem(PRO_E_CSYS_ORIENTSELAXIS2_ROT, 0, 1, newElems);

	/*	 Element id:	3051 : PRO_E_CSYS_TYPE_MECH	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_TYPE_MECH, 0, 1, newElems);

	/*	 Element id:	3932 : PRO_E_CSYS_FOLLOW_SRF_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_FOLLOW_SRF_OPT, 0, 1, newElems);

	/*	 Element id:	6133 : PRO_E_CSYS_NAME_DISPLAY_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_NAME_DISPLAY_OPT, 1, 1, newElems);

	/*	 Element id:	6140 : PRO_E_CSYS_DISPLAY_ZOOM_DEP_OPT	*/
	localElem.CreateIntegerElem(PRO_E_CSYS_DISPLAY_ZOOM_DEP_OPT, 0, 1, newElems);

	/*	 Element id:	6139 : PRO_E_CSYS_AXIS_LENGTH	*/
	localElem.CreateDoubleElem(PRO_E_CSYS_AXIS_LENGTH, 0, 1, newElems);


	return (newElems);
}

 

Thanks to everyone who participate in helping me out!

 

Regards

Daniel

Translate