Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Referenz Set benennen über C++

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
Autor Thema:  Referenz Set benennen über C++ (1898 mal gelesen)
dazy
Mitglied


Sehen Sie sich das Profil von dazy an!   Senden Sie eine Private Message an dazy  Schreiben Sie einen Gästebucheintrag für dazy

Beiträge: 2
Registriert: 16.12.2011

Win7 64-bit, SP1
NX 7.5.3.3
Visual Studio 2008, Version 9.0.21022.8 RTM, .NET Framework Version 3.5 SP1

erstellt am: 16. Dez. 2011 15:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen

Ich bin zurzeit an einer Knacknuss dran, die ich einfach nicht hinkriege. Ich möchte über C++ ein Referenz Set erstellen und anschliessend benennen. Das Problem dabei ist, dass ich den Namen über SetName zwar setze, das neu erstellte Referenz Set diesen aber schliesslich nicht "annimmt". Wenn ich nach SetName den Namen des neu erstellten Referenz Sets auslese, erhalte ich den Standard-Namen, den NX vergibt.
Der Code hierzu sieht folgendermassen aus:

Session *theSession = NULL;
Part *workPart = theSession->Parts()->Work();
ReferenceSet *refSetABC;
refSetABC = workPart->CreateReferenceSet();
refSetABC->SetName("ABC");                  // FUNKTIONIERT NICHT!!!

char cRefSetName[255] = "";
string sRefSetName = "";
UF_CALL(UF_OBJ_ask_name(refSetABC->Tag(), cRefSetName));
sRefSetName = (string)cRefSetName;         // der String sRefSetName liefert "REFERENCE_SET1")

Hat vielleicht jemand eine Idee, an was dies liegen könnte..?

Vielen Dank für eure Hilfe.
dazy

[Diese Nachricht wurde von dazy am 16. Dez. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 17. Dez. 2011 10:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dazy 10 Unities + Antwort hilfreich

Hallo dazy,

am Code liegt's m.E. nicht. In VB und CS funktioniert SetName. Evtl. hilft das  "alte" CreateRefSet (UFSession.Assem), bei dem der Name als Parameter mitgegeben wird.

Gruß, Michael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

dazy
Mitglied


Sehen Sie sich das Profil von dazy an!   Senden Sie eine Private Message an dazy  Schreiben Sie einen Gästebucheintrag für dazy

Beiträge: 2
Registriert: 16.12.2011

Win7 64-bit, SP1
NX 7.5.3.3
Visual Studio 2008, Version 9.0.21022.8 RTM, .NET Framework Version 3.5 SP1

erstellt am: 20. Dez. 2011 12:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Vermessungsingenieur*in als Projektleitung (m/w/d)

Für unsere Abteilung GN-G "Geodaten und Sanierungsmanagement" suchen wir zum nächstmöglichen Zeitpunkt unbefristet in Vollzeit- Teilzeit ist unter bestimmten Umständen möglich - einen

Vermessungsingenieur*in als Projektleitung (m/w/d)

- Vermessung und technische Dokumentation -

Wir bieten:

  • Bezahlung nach dem Tarifvertrag ...
Anzeige ansehenProjektmanagement
little_ug
Mitglied
CAX/PDM Admin / PM


Sehen Sie sich das Profil von little_ug an!   Senden Sie eine Private Message an little_ug  Schreiben Sie einen Gästebucheintrag für little_ug

Beiträge: 389
Registriert: 20.03.2003

erstellt am: 20. Dez. 2011 20:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für dazy 10 Unities + Antwort hilfreich

hi, hab so was nur bis jetzt mit .net gemacht...
       
        Dim refs As ReferenceSet = Nothing

        If refsetname = "TRUE" Then
            If refs_true_exist = True Then
                wP.DeleteReferenceSet(refs_true)
            End If
            refs = wP.CreateReferenceSet()
            refs.SetName(refsetname)
        ElseIf refsetname = "FALSE" Then
            If refs_false_exist = True Then
                wP.DeleteReferenceSet(refs_false)
            End If
            refs = wP.CreateReferenceSet()
            refs.SetName(refsetname)
        Else
            Return False
        End If

        Dim comps(0) As NXObject
        comps(0) = mybody

        If Not refs Is Nothing Then

                refs.AddObjectsToReferenceSet(comps)

        End If


aber durchsuch mal das solution center dort findest du:
- Sample Open C API program : copy reference set members
- Sample Open C API program : create reference sets
vielleicht hilft das weiter...


------------------
Gruß

Michael

have you tried turning it off and on again

[Diese Nachricht wurde von little_ug am 20. Dez. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz