📄 geardesignui.c
字号:
ProTKGDUISelectNext (g_ptr, step); return;}/*=============================================================*\ Function: ProTKGDUIHubInputAction Purpose: Hub params input action function\*=============================================================*/void ProTKGDUIHubInputAction (char* dialog, char *component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProTKGDUIHubFromUIUpdate (g_ptr); ProTKGDUIHubUIUpdate (g_ptr);}/*=============================================================*\ Function: ProTKGDUIBackplateInputAction Purpose: Backplate params input action function\*=============================================================*/void ProTKGDUIBackplateInputAction (char* dialog, char *component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProTKGDUIBackplateFromUIUpdate (g_ptr); ProTKGDUIBackplateUIUpdate (g_ptr);}/*=============================================================*\ Function: ProTKGDUITeethInputAction Purpose: Teeth params input action function\*=============================================================*/void ProTKGDUITeethInputAction (char* dialog, char *component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProTKGDUITeethFromUIUpdate (g_ptr); ProTKGDUITeethUIUpdate (g_ptr);}/*=============================================================*\ Function: ProTKGDUITeethUpdateAction Purpose: Teeth params update action function (spinbox)\*=============================================================*/void ProTKGDUITeethUpdateAction (char* dialog, char *component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProTKGDUITeethFromUIUpdate (g_ptr); ProTKGDUITeethUIUpdate (g_ptr);} /*=============================================================*\ Function: ProTKGDUIIncludeKeywayAction Purpose: Include keyway checkbox action function\*=============================================================*/void ProTKGDUIIncludeKeywayAction (char* dialog, char *component, ProAppData appdata){ ProBoolean keyway; GearParam* g_ptr = (GearParam*)appdata; ProUICheckbuttonGetState (GD_UI_MAIN, GD_UI_INCLUDE_KEYWAY, &keyway); ProTKGDUIKeywayUIUpdate (g_ptr, keyway);}/*=============================================================*\ Function: ProTKGDUIIncludeKeyAction Purpose: Include key checkbox action function\*=============================================================*/void ProTKGDUIIncludeKeyAction (char* dialog, char *component, ProAppData appdata){ ProBoolean key; GearParam* g_ptr = (GearParam*)appdata; ProUICheckbuttonGetState (GD_UI_MAIN, GD_UI_INCLUDE_KEY, &key); ProTKGDUIKeyUIUpdate (g_ptr, key);}/*=============================================================*\ Function: ProTKGDUIIncludeBacknotchAction Purpose: Include backnotch checkbox action function\*=============================================================*/void ProTKGDUIIncludeBacknotchAction (char* dialog, char *component, ProAppData appdata){ ProBoolean bn; GearParam* g_ptr = (GearParam*)appdata; ProUICheckbuttonGetState (GD_UI_MAIN, GD_UI_INCLUDE_BN, &bn); ProTKGDUIBacknotchUIUpdate (g_ptr, bn);}/*=============================================================*\ Function: ProTKGDUIToggleTypeAction Purpose: Action function for menu radiogroup (type)\*=============================================================*/void ProTKGDUIToggleTypeAction (char* dialog, char *component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; int n_sels; char** sel_names; int new_type; ProUIRadiogroupSelectednamesGet (GD_UI_MAIN, component, &n_sels, &sel_names); if (strcmp (sel_names[0], GD_UI_GROUP_SPUR) == 0) new_type = SPUR_GEAR; else new_type = RING_GEAR; ProStringarrayFree (sel_names, n_sels); if (new_type == g_ptr->gear_type) return; g_ptr->gear_type = new_type; ProTKGDUIToggleType (g_ptr);}/*=============================================================*\ Function: ProTKGDUIDeleteAction Purpose: Delete button action function\*=============================================================*/void ProTKGDUIDeleteAction (char* dialog, char* component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProUserDeleteDesign (g_ptr);}/*=============================================================*\ Function: ProTKGDUIModifyAction Purpose: Modify button action function\*=============================================================*/void ProTKGDUIModifyAction (char* dialog, char* component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProUserModifyDesign (g_ptr);}/*=============================================================*\ Function: ProTKGDUIRegenerateAction Purpose: Regenerate button action function\*=============================================================*/void ProTKGDUIRegenerateAction (char* dialog, char* component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProUserRegenerate (g_ptr);}/*=============================================================*\ Function: ProTKGDUIMaterialAction Purpose: Set Material button action function\*=============================================================*/void ProTKGDUIMaterialAction (char* dialog, char* component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProUserMaterial (g_ptr);}/*=============================================================*\ Function: ProTKGDUIViewSelectAction Purpose: Saved view selection action function\*=============================================================*/void ProTKGDUIViewSelectAction (char* dialog, char* component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; char** names; int n_names; ProName new_view; ProView view; ProUIRadiogroupSelectednamesGet (GD_UI_MAIN, GD_UI_TOOL_VIEW_CHOICE_M, &n_names, &names); ProStringToWstring (new_view, names [0]); ProStringarrayFree (names, n_names); ProViewRetrieve(g_ptr->model, new_view, &view);}/*=============================================================*\ Function: ProTKGDUIViewSelectAction Purpose: Utility: update contents of the saved views radiogroup\*=============================================================*/void ProTKGDUIViewNamesUpdate (GearParam* g_ptr){ ProError err; ProName* names; int num_views; int ii, len; char** new_names; wchar_t** new_labels; err = ProViewNamesGet(g_ptr->model, &names, NULL, &num_views); if (err != PRO_TK_NO_ERROR || num_views<=0) { ProUICascadebuttonDisable (GD_UI_MAIN, GD_UI_TOOL_SAVEDVIEWS_CASCADE_M); } else { ProUICascadebuttonEnable (GD_UI_MAIN, GD_UI_TOOL_SAVEDVIEWS_CASCADE_M); new_names = (char**) calloc (num_views, sizeof (char*)); new_labels = (wchar_t**) calloc (num_views, sizeof (wchar_t*)); for (ii = 0; ii < num_views; ii++) { len = ProUtilWstrLen (names [ii]) + 1; new_names [ii] = (char*) calloc (len, sizeof (char)); ProWstringToString (new_names [ii], names [ii]); new_labels [ii] = (wchar_t*) calloc (len, sizeof (wchar_t)); ProUtilWstrcpy (new_labels [ii], names [ii]); } ProUIRadiogroupNamesSet (GD_UI_MAIN, GD_UI_TOOL_VIEW_CHOICE_M, num_views, new_names); ProUIRadiogroupLabelsSet (GD_UI_MAIN, GD_UI_TOOL_VIEW_CHOICE_M, num_views, new_labels); for (ii = 0; ii < num_views; ii++) { free (new_names [ii]); free (new_labels [ii]); } free (new_names); free (new_labels); ProArrayFree ((ProArray*)&names); }}/*=============================================================*\ Function: ProTKGDUIDefaultViewCreateAction Purpose: Create Default Views action function\*=============================================================*/void ProTKGDUIDefaultViewCreateAction (char* dialog, char* component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProUserCreateViewAuto (g_ptr); ProTKGDUIViewNamesUpdate (g_ptr);}/*=============================================================*\ Function: ProTKGDUIViewStoreAction Purpose: Save View action function\*=============================================================*/void ProTKGDUIViewStoreAction (char* dialog, char* component, ProAppData appdata){ GearParam* g_ptr = (GearParam*)appdata; ProUserCreateViewManual (g_ptr); ProTKGDUIViewNamesUpdate (g_ptr);}/*=============================================================*\ Function: ProUserNewgearUI Purpose: Initialize and launch the Gear Design dialog\*=============================================================*/int ProUserNewgearUI(){ ProError err; int ui_status; GearParam *g_ptr; ProMdl model; err = ProMdlCurrentGet(&model); if (err != PRO_TK_NO_ERROR) return (-1); g_ptr = (GearParam*)calloc(1, sizeof(GearParam)); memset (g_ptr, '\0', sizeof (GearParam)); g_ptr->model = (ProPart)model; g_ptr->current_step = PTK_GD_DATUM; ProUserAssignParamDef (g_ptr);/*-----------------------------------------------------------------*\ Collect information about created features\*-----------------------------------------------------------------*/ if (ProUserCheckFeatures(g_ptr)!=PRO_TK_NO_ERROR) { ProMessageDisplay(MSGFIL, "USER Error while check Gear Design"); return (-1); } err = ProUIDialogCreate (GD_UI_MAIN, GD_UI_MAIN); if (err != PRO_TK_NO_ERROR) return PRO_TK_GENERAL_ERROR; /* UI Initialization */ err = ProUIDialogCloseActionSet (GD_UI_MAIN, (ProUIAction)ProTKGDUICloseAction, NULL); /* Close actions */ err = ProUIPushbuttonActivateActionSet (GD_UI_MAIN, GD_UI_CLOSEBTN, (ProUIAction)ProTKGDUICloseAction, NULL); err = ProUIPushbuttonActivateActionSet (GD_UI_MAIN, GD_UI_CLOSEBTN_M, (ProUIAction)ProTKGDUICloseAction, NULL); err = ProUIRadiogroupSelectActionSet (GD_UI_MAIN, GD_UI_GEARTYPE_GROUP_M, (ProUIAction)ProTKGDUIToggleTypeAction, g_ptr); err = ProUIRadiogroupSelectActionSet (GD_UI_MAIN, GD_UI_GEARTYPE_GROUP_RMB, (ProUIAction)ProTKGDUIToggleTypeAction, g_ptr); /* Create action */ err = ProUIPushbuttonActivateActionSet (GD_UI_MAIN, GD_UI_CREATEBTN, (ProUIAction)ProTKGDUICreateAction, g_ptr); /* Checkbutton actions */ err = ProUICheckbuttonActivateActionSet (GD_UI_MAIN, GD_UI_INCLUDE_KEYWAY, (ProUIAction)ProTKGDUIIncludeKeywayAction, g_ptr); err = ProUICheckbuttonActivateActionSet (GD_UI_MAIN, GD_UI_INCLUDE_KEY, (ProUIAction)ProTKGDUIIncludeKeyAction, g_ptr); err = ProUICheckbuttonActivateActionSet (GD_UI_MAIN, GD_UI_INCLUDE_BN, (ProUIAction)ProTKGDUIIncludeBacknotchAction, g_ptr); /* Input actions */ err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_GEARDISK_W_INPUT, (ProUIAction)ProTKGDUIDiskInputAction, g_ptr); err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_GEARDISK_D_INPUT, (ProUIAction)ProTKGDUIDiskInputAction, g_ptr); err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_GEARHOLE_D_INPUT, (ProUIAction)ProTKGDUIHoleInputAction, g_ptr); err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_GEARHUB_D_INPUT, (ProUIAction)ProTKGDUIHubInputAction, g_ptr); err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_GEARHUB_T_INPUT, (ProUIAction)ProTKGDUIHubInputAction, g_ptr); err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_BP_D_INPUT, (ProUIAction)ProTKGDUIBackplateInputAction, g_ptr); err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_BP_T_INPUT, (ProUIAction)ProTKGDUIBackplateInputAction, g_ptr); err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_TOOTH_PRESSURE_ANGLE, (ProUIAction)ProTKGDUITeethInputAction, g_ptr); err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_TOOTH_P1_INPUT, (ProUIAction)ProTKGDUITeethInputAction, g_ptr); err = ProUIInputpanelInputActionSet (GD_UI_MAIN, GD_UI_TOOTH_INNER_SURF_INPUT, (ProUIAction)ProTKGDUITeethInputAction, g_ptr); err = ProUISpinboxUpdateActionSet (GD_UI_MAIN, GD_UI_N_TEETH_SPINBOX, (ProUIAction)ProTKGDUITeethUpdateAction, g_ptr); /* Update table */ ProTKGDUIStatusTableInit (g_ptr); err = ProUITableSelectActionSet (GD_UI_MAIN, GD_UI_STATUS_TABLE, (ProUIAction)ProTKGDUITableSelectAction, g_ptr); ProTKGDUIDatumUIUpdate (g_ptr); ProTKGDUIDiskUIUpdate (g_ptr); ProTKGDUIHoleUIUpdate (g_ptr); ProTKGDUIHubUIUpdate (g_ptr); ProTKGDUIBackplateUIUpdate (g_ptr); ProTKGDUITeethUIUpdate (g_ptr); /* Tools actions */ err = ProUIPushbuttonActivateActionSet (GD_UI_MAIN, GD_UI_TOOL_DELETE_M, (ProUIAction)ProTKGDUIDeleteAction, g_ptr); err = ProUIPushbuttonActivateActionSet (GD_UI_MAIN, GD_UI_TOOL_MODIFY_M, (ProUIAction)ProTKGDUIModifyAction, g_ptr); err = ProUIPushbuttonActivateActionSet (GD_UI_MAIN, GD_UI_TOOL_REGENERATE_M, (ProUIAction)ProTKGDUIRegenerateAction, g_ptr); err = ProUIPushbuttonActivateActionSet (GD_UI_MAIN, GD_UI_TOOL_MATERIAL_M, (ProUIAction)ProTKGDUIMaterialAction, g_ptr); ProTKGDUIViewNamesUpdate (g_ptr); err = ProUIRadiogroupSelectActionSet (GD_UI_MAIN, GD_UI_TOOL_VIEW_CHOICE_M, (ProUIAction)ProTKGDUIViewSelectAction, g_ptr); err = ProUIPushbuttonActivateActionSet (GD_UI_MAIN, GD_UI_TOOL_VIEW_DEFAULTCREATE_M, (ProUIAction)ProTKGDUIDefaultViewCreateAction, g_ptr); err = ProUIPushbuttonActivateActionSet (GD_UI_MAIN, GD_UI_TOOL_VIEW_STORE_M, (ProUIAction)ProTKGDUIViewStoreAction, g_ptr); /* Popup menu */ err = ProUIDialogPopupmenuSet (GD_UI_MAIN, GD_UI_MENUPANE_RMB); err = ProUIDialogActivate (GD_UI_MAIN, &ui_status); if (err != PRO_TK_NO_ERROR) return PRO_TK_GENERAL_ERROR; err = ProUIDialogDestroy (GD_UI_MAIN); free (g_ptr); return PRO_TK_NO_ERROR;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -