| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: UG NX2 OpenC++ Bemassungsinformationen (360 mal gelesen)
|
dodger Mitglied Informatiker
Beiträge: 3 Registriert: 22.07.2004 Windows XP, Unigraphics NX2
|
erstellt am: 22. Jul. 2004 13:56 <-- editieren / zitieren --> Unities abgeben:
Hey Leute Ich versuche mithilfe der OpenC++ Schnittstelle, alle Bemassungen herauszulesen, was mir bereits gelungen ist. Nun habe ich zum Beispiel ein Mass mit Toleranz und Angehaengtem Text (appended text). Auch diesen kann ich erfolgreich herausfiltern. Nun aber sollen die Toleranzen herausgelesen werden. Und dies stellt das Problem dar. Ich finde keine Routine, die mir irgend welche Infos ueber die Toleranz einer bestimmten Bemassung liefert. Ich waere froh um eine Antwort. Nun eine zweite Frage: Kann ich eine DLL die ich schreibe durch irgend ein Event vom Unigraphics aus starten so zum Beispiel beim oeffnen oder schliessen einer Datei. Wenn ja was fuer Moeglichkeiten habe ich? Vielen Dank fuer alle Antworten:
Gruss marco ravicini ------------------ may the source be with you Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dodger Mitglied Informatiker
Beiträge: 3 Registriert: 22.07.2004 Windows XP, Unigraphics NX2
|
erstellt am: 22. Jul. 2004 14:57 <-- editieren / zitieren --> Unities abgeben:
Die antwort der ersten Frage habe ich herausgefunden. Leider wirft die Loesung eine neue Frage auf. Wie kann ich die Toleranzen veraendern, oder neu setzen? ------------------ may the source be with you Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stefan.f Mitglied
Beiträge: 123 Registriert: 03.09.2002
|
erstellt am: 23. Jul. 2004 07:08 <-- editieren / zitieren --> Unities abgeben: Nur für dodger
Hallo Dodger, den appended text kannst du mit UF_DRF_set_appended_text verändern. Zur 2ten Frage: Schau mal in der API-Hilfe nach UF_add_callback_function Ich hoffe das hilft dir weiter. Gruß Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eisele Mitglied
Beiträge: 54 Registriert: 06.06.2002 ENOVIA MatrixOne
|
erstellt am: 23. Jul. 2004 08:07 <-- editieren / zitieren --> Unities abgeben: Nur für dodger
Hallo Marco, in der Datei ...Unigraphics NX 2.0\UGII\ugii_env.dat kannst Du im Abschnitt USER_CREATE=... einen sogenannten USER EXITS aufrufen. Diese wird immer mit der Aktion gestartet (hier Datei neu). Dies kann irgendein UGOPEN-Programm sein. Im Abschnitt USER EXITS dieser Datei sind alle Einstiegspunkte beschrieben. Viele Grüße
Eisele
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dodger Mitglied Informatiker
Beiträge: 3 Registriert: 22.07.2004 Windows XP, Unigraphics NX2
|
erstellt am: 23. Jul. 2004 09:21 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank fuer die Antwort ich moecht jedoch nicht den appended Text veraendern sondern eine Toleranzangabe. Massbeispiel: 100 +-0.1 h7 h7: Appended Text +-0.1: im Unigraphics erstellte Toleranz nun hab ich aber eine Toleranz mit zwei Werten + und - wie kann ich diese veraendern? was ich bisher versucht habe:
Code:
void getDimensions() { char errorMessage[133] = ""; int count; int ifail = 0; tag_t part; tag_t dim; int searchMask[4] = {0,0,1,0}; int cycleFlag; int annData[10] = {0,0,0,0,0,0,0,0,0,0}; int annDataType; int annDataForm; int numSegments; double annOrigin[2]; double radiusAngle; int i, openB, closeB; char info[30] = ""; int ir4, ir5; char tolerance[20] = ""; char newTolerances[2][ 133 ]; UF_DRF_appended_text_s appendText; UF_DRF_appended_text_t* appendTextP = &appendText; int numText; part = UF_ASSEM_ask_work_part(); count = 0; dim = NULL_TAG; ifail = UF_OBJ_cycle_objs_in_part(part, UF_dimension_type, &dim); while(!ifail && dim) { //ask appended text UF_DRF_ask_appended_text(dim,&numText, &appendTextP); if(numText>0) { //falls numText > 0 dann ist append Text Vorhanden und muss ueperprueft werden cout << "\n\nDimension found: \n"; //herauslesen der Toleranzangabe im AppendedText openB=0; while((appendTextP->text)[0][openB] != '\x28') { openB++; } closeB=1; while((appendTextP->text)[0][closeB] != '\x29') { closeB++; } tolerance[0] = (appendTextP->text)[0][openB+1]; tolerance[1] = (appendTextP->text)[0][openB+2]; for(i = 0; (i + openB) < (closeB-1); i++) { tolerance[i] = (appendTextP->text)[0][openB+1+i]; } cout << "Toleranz im Appended Text: " << tolerance << "\n"; //Herauslesen des Masses aus der Dimension for(cycleFlag = 0; cycleFlag <=2; cycleFlag++) { UF_DRF_ask_ann_data(&dim, searchMask, &cycleFlag, annData, &annDataType, &annDataForm, &numSegments, annOrigin, &radiusAngle); } uc5574(1,annData, info, &ir4, &ir5); cout << "Massangabe im Stringformat: " << info << "\n";
newTolerances[0][0] = '<'; newTolerances[0][1] = '+'; newTolerances[0][2] = '0'; newTolerances[0][3] = '!'; newTolerances[0][4] = '-'; newTolerances[0][5] = '0'; newTolerances[0][6] = '>'; newTolerances[0][7] = '\0'; //koennte loesung sein cout << uc5566(dim, 4, 1,newTolerances); } // next dimension in part ifail = UF_OBJ_cycle_objs_in_part(part, UF_dimension_type, &dim); cout << "\n\n"; // cleanup for(i=0;i<10;i++) { annData[i] = 0; } } if(ifail) { ifail = UF_get_fail_message(ifail, errorMessage); cout << "Failure\nError is: " << errorMessage; } }
die newTolerance habe ich so formatiert, da UF_DRF_ask_ann_data und uc5574 zurueckgibt wie muss ich newTolerance genau formatieren und wie genau uc5566 anwenden, damit eine Toleranz veraendert wird?
------------------ may the source be with you Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|