Hallo Michael
Ich habe eigentlich genau das gleiche Problem, wie Thöme in seinem Post "Referenz Set Einfach mittels Programm erstellen?". Ich habe nur das Problem, dass ich dll's aus .Net in unserer Firma nicht zum Laufen bringe (über Netzwerk, Sicherheitslevel kann nicht auf "Full Trust" gestellt werden). Daher habe ich mich für C++ entschieden.
Habe nun lange probiert. Irgendwie zieht das eine immer 3 andere Dinge mit sich...
Nun bin ich aber so weit, dass ich auf die "alte" Weise ich ein RefSet mit "Wunschnamen" erstellen kann. Jedoch der Extracted Body dem neu erzeugten RefSet nicht hinzugefügt.
Auch mit add_ref_set_members bringe ich den Extracted Body nicht auf das neue RefSet.
//----------------------------
Session *theSession = NULL;
UI *theUI = NULL;
Part *workPart = theSession->Parts()->Work();
NXObject *extr_body = 0;
tag_t extr_body_tag = NULL_TAG;
tag_t *eb_tag = NULL_TAG;
NXObject *orig_body = theUI->SelectionManager()->GetSelectedObject(0);
// Make extracted body
Feature *nullFeatures_Feature(NULL);
extractFaceBuilder1 = workPart->Features()->CreateExtractFaceBuilder(nullFeatures_Feature);
extractFaceBuilder1->SetType(ExtractFaceBuilder::ExtractTypeBody);
extractFaceBuilder1->SetParentPart(ExtractFaceBuilder::ParentPartTypeWorkPart);
extractFaceBuilder1->SetFixAtCurrentTimestamp(true);
extractFaceBuilder1->SetSurfaceType(ExtractFaceBuilder::FaceSurfaceTypeSameAsOriginal);
extractFaceBuilder1->BodyToExtract()->Add(orig_body);
extr_body = extractFaceBuilder1->Commit();
extractFaceBuilder1->Destroy();
extr_body_tag = extr_body->Tag();
eb_tag = &extr_body_tag;
// Create new reference set "ABC" an move extracted body to it
double abs[9] = { 1,0,0, 0,1,0, 0,0,1 },
zero[3] = { 0,0,0 };
tag_t ref_set;
UF_CALL(UF_ASSEM_create_ref_set("ABC", zero, abs, eb_tag, 1, &ref_set));
UF_CALL(UF_ASSEM_add_ref_set_members(ref_set, 1, eb_tag));
//----------------------------
Bin um jeden Hinweis dankbar.
Gruss dazy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP