久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区

您的位置:網站首頁 > UG教程下載

UG NX5.0的工程圖尺寸標識工具的開發

時間:2010-11-15 10:57:50 來源:

  1 基于UG的工程圖尺寸標識工具簡介

  UG(Unigraphics)軟件起源于美國麥道(MD)公司,六十年代起成為商業軟件。1991年并入EDS 公司,成為世界一流的集成化機械CAD/CAE/CAM 軟件,通用汽車公司是UGⅡ的最大用戶(擁有2400 套UGⅡ系統)。UG 于1990 年初進入中國市場,廣泛用于國內的航空航天、汽車、通用機械及模具等各個領域。

  UG 是一個功能強大的CAD/CAM 軟件,針對于整個產品開發的全過程,從產品的概念設計直到產品建模、分析和制造過程。作為一個業界最完整的一流產品,Unigraphics 提供了全系列的工具,包括針對計算機輔助工業設計(CAID)藝術級工具,并與功能強大的CAD/CAM/CAE 解決方案緊密集成。UG 具有獨特的知識驅動自動化(KDA)的功能,使產品和過程的知識能夠集成在一個系統里,Unigraphics 大大提高了許多世界知名公司的生產力。

  基于UG的工程圖尺寸標識工具是在UG強大的工程圖模塊和完善的二次開發模塊基礎上結合VC 6.0為編程工具開發出來尺寸標識工具集,是UG相關功能的一種整合和顯化,主要應用于工程圖中重要尺寸、參考尺寸和基本尺寸的標識和標識去除,從而使尺寸的標識更快速方便。

  2 尺寸標識工具的設計與實現

  2.1 開發與運行環境選型和設置

  本文選擇了UG NX5.0為CAD軟件平臺和Visual C 6.0 為系統開發的編程工具,UG系統提供了具有開方式架構體系的二次開發環境UG/Open,支持對UG 資源的調用,包括UG/Open MenuScript(用戶菜單)、UG/Open UIStyler(用戶對話框)、UG/Open API(與UG 系統資源的直接交互接口),結合UG二次開發環境UG/Open的結構框架進行如下設置:

  2.1.1 工程目錄結構設置

  建立D: Ug_stdsDIM_ID工程文件夾,在其下建立以下四個文件夾目錄(圖1):

  1)、startup 目錄存放UG啟動時需要加載的動態連接庫文件(*.dll)、菜單腳本文件(*.men)和工具欄腳本文件(*.tbr);

  2)、application 目錄存放尺寸標識工具的功能擴展程序文件,如UIStyler對話框文件(*.dlg),工具圖標文件(*.bmp);

  3)、code 目錄存放尺寸標識工具的程序源代碼(該目錄在新建工程時創建);

  4)、doc 目錄存放尺寸標識工具的使用說明。

   

  2.1.2 設置系統環境變量

  在控制面板中點擊系統→高級→環境變量,增加環境變量UGII_USER_DIR,使其指向

  D: Ug_stdsDIM_ID。本文首先闡述了工程圖樣尺寸標識的分類,進而為達到快速而方便的進行尺寸標識,結合UGNX5.0強大的工程圖模塊和完善的二次開發模塊,同時運用VC 6.0為編程工具,開發出與UG軟件完全融為一體的尺寸標識工具。

  2.2 編寫尺寸標識工具的菜單

  應用UG/OPEN MenuScript所提供了一套用于定義Unigraphics菜單的腳本語言,運用記事本工具按照MenuScript腳本語言語法可定義DIM.men文件,將該文件保存在D: Ug_stdsDIM_IDstartup文件夾中,DIM.men具體內容如下:

  VERSION 120

  EDIT UG_GATEWAY_MAIN_MENUBAR

  BEFORE UG_HELP

  CASCADE_BUTTON DIM_ID

  LABEL 尺寸標識

  END_OF_BEFORE

  MENU DIM_ID

  BUTTON IMP_DIM

  LABEL 重要尺寸

  ACTIONS IMP_DIM

  END_OF_MENU

  MENU DIM_ID

  BUTTON REF_DIM

  LABEL 參考尺寸

  ACTIONS REF_DIM

  END_OF_MENU

  MENU DIM_ID

  BUTTON BASIC_DIM

  LABEL 基本尺寸

  ACTIONS BASIC_DIM

  END_OF_MENU

  運行UG NX后在主界面上生成的尺寸標識工具菜單如圖2所示:

   

  2.3 建立尺寸標識工具的工具條

  編寫工具條(Toolbar)為方便快速的使用尺寸標識工具,實現方法是制作或編寫工具圖標文件(BMP文件)與工具條文件,工具條是以.tbr為擴展名的文本文件。

  首先在application文件夾中創建工具圖標文件,分別命名為basic_dim.bmp 、imp_dim.bmp和ref_dim.bmp,每個圖標的標準大小為24X24(像素X像素),然后在startup文件夾中創建工具條腳本文件DIM.tbr,并輸入如下代碼:

  TITLE 尺寸標識

  VERSION 170

  DOCK TOP

  BUTTON IMP_DIM

  LABEL 重要尺寸

  BITMAP imp_dim.bmp

  BUTTON REF_DIM

  LABEL 參考尺寸

  BITMAP ref_dim.bmp

  BUTTON BASIC_DIM

  LABEL 基本尺寸

  BITMAP basic_dim.bmp

  運行UG NX后在主界面上生成的尺寸標識工具的工具條如圖3所示:

   

  2.4 創建尺寸標識工具的交互接口界面

  UG/OPEN UIStyler提供了快速生成Unigraphics對話框的功能,產生的對話框可以在MenuScript文件中被調用。

  1)、在Unigraphics Gateway狀態下,選擇Start→All Applicatoins→User Interface styler…,進入UIStyler;

  2)、利用UIStyler提供的控件分別創建重要尺寸,參考尺寸和基本尺寸的對話框,設置成添加和去除尺寸標識按鈕,圖4所示為重要尺寸的對話框:

   

  3)、將三類尺寸標識的對話框文件(*.dlg文件)保存至applicatoin文件夾中,UIStyler針對每一個*.dlg文件自動創建對應的*.h文件和*.c文件,自動保存至applicatoin文件夾中。

  運行UG NX后在主界面上點擊重要尺寸標識按鈕時出現的對話框,如圖5所示:

   

  本文首先闡述了工程圖樣尺寸標識的分類,進而為達到快速而方便的進行尺寸標識,結合UGNX5.0強大的工程圖模塊和完善的二次開發模塊,同時運用VC 6.0為編程工具,開發出與UG軟件完全融為一體的尺寸標識工具。

  2.5 創建尺寸標識工具的動態鏈接庫文件

  動態鏈接庫(DLL)文件適用于對UG/OPEN API的內部模式,程序只能在Unigraphics的界面環境中運行。重要尺寸標識功能所對應的動態鏈接庫文件(Imp_Code.dll)的創建過程如下:

  2.5.1 在Visual C 中使用MFC應用向導新建工程項目Imp_Code.dsw,如圖6所示;

   

  2.5.2 設置UG應用開發環境

  1)、工程設置

  選擇菜單命令Project→Setting,彈出Project Setting對話框,選擇Link選項卡,在Output file name文本框中輸入D:Ug_stdsDIM_IDstartupImp_Code.dll,并在Object/library modules文本框中輸入UG庫文件kernel32.lib、user32.lib、gdi32.lib、winspool.lib、comdlg32.lib advapi32.lib、shell32.lib、ole32.lib、oleaut32.lib、uuid.lib、odbc32.lib、odbccp32.lib、libufun.lib、libugopenint.lib,如圖7所示:

   

  2)、配置路徑選項

  選擇菜單命令Tools→Option,彈出Options對話框。選擇Directories選項卡,設置如圖8所示:

   

  2.5.3 編寫消息映射代碼

  1)、建立用戶文件

  在VC中選擇菜單命令Project→Add To Project→New,添加新文件Main.h和Main.cpp

  到工程中,并將這兩個文件作為重要尺寸標識工具的工程主文件。添加新文件APP.h和APP.cpp到工程中,并將這兩個文件作為重要尺寸標識工具的工程應用文件,如圖9所示:

   

  本文首先闡述了工程圖樣尺寸標識的分類,進而為達到快速而方便的進行尺寸標識,結合UGNX5.0強大的工程圖模塊和完善的二次開發模塊,同時運用VC 6.0為編程工具,開發出與UG軟件完全融為一體的尺寸標識工具。

  2)、編寫文件代碼

  在新建的工程文件中添加以下代碼(由于篇幅有限,這里只例舉了重要尺寸標識工具的主要代碼imp.cpp):

  #include "stdafx.h"

  #include "Main.h"

  /*-------------------------------------------------------------------------*/

  /*---------------------- UIStyler Callback Functions ----------------------*/

  /*-------------------------------------------------------------------------*/

  /* -------------------------------------------------------------------------

  * Callback Name: IMP_DIM_IMP_DIM_choose

  * This is a callback function associated with an action taken from a

  * UIStyler object.

  *

  * Input: dialog_id - The dialog id indicate which dialog this callback

  * is associated with. The dialog id is a dynamic,

  * unique id and should not be stored. It is

  * strictly for the use in the NX Open API:

  * UF_STYLER_ask_value(s)

  * UF_STYLER_set_value

  * client_data - Client data is user defined data associated

  * with your dialog. Client data may be bound

  * to your dialog with UF_MB_add_styler_actions

  * or UF_STYLER_create_dialog.

  * callback_data - This structure pointer contains information

  * specific to the UIStyler Object type that

  * invoked this callback and the callback type.

  * -----------------------------------------------------------------------*/

  static int init_proc(UF_UI_selection_p_t select,void* user_data)

  {

  int num_triples = 1;

  UF_UI_mask_t mask_triples[]={UF_dimension_type, UF_all_subtype, 0};

  if(UF_UI_set_sel_mask(select,UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,

  num_triples, mask_triples)==0)

  return (UF_UI_SEL_SUCCESS);

  else

  return (UF_UI_SEL_FAILURE);

  }

  int IMP_DIM_IMP_DIM_choose ( int dialog_id,

  void * client_data,

  UF_STYLER_item_value_type_p_t callback_data)

  {

  /* Make sure User Function is available. */

  int response;

  tag_t dim_tag,view_tag;

  double cursor[3];

  UF_DRF_inspection_type_t dim_inspection_type;

  if ( UF_initialize() != 0)

  return ( UF_UI_CB_CONTINUE_DIALOG );

  /* ---- Enter your callback code here ----- */

  UF_UI_select_with_single_dialog("選擇一個尺寸","選擇工程圖尺寸",

  UF_UI_SEL_SCOPE_WORK_PART, init_proc, NULL,

  &response, &dim_tag, cursor, &view_tag);

  if (response == UF_UI_OBJECT_SELECTED ||

  response == UF_UI_OBJECT_SELECTED_BY_NAME)

  {

  UF_DISP_set_highlight(dim_tag,0);

  UF_DRF_ask_dim_inspection_type(dim_tag,&dim_inspection_type);

  if(dim_inspection_type==UF_DRF_NO_INSPECTION)

  {

  dim_inspection_type=UF_DRF_WITH_INSPECTION;

  UF_DRF_set_dim_inspection_type(dim_tag,dim_inspection_type);

  }

  else

  {

  uc1601("此尺寸已標識,請去除標識!",1);

  }

  }

  UF_terminate ();

  /* Callback acknowledged, do not terminate dialog */

  return (UF_UI_CB_CONTINUE_DIALOG);

  /* or Callback acknowledged, terminate dialog. */

  /* return ( UF_UI_CB_EXIT_DIALOG ); */

  }

  /* -------------------------------------------------------------------------

  * Callback Name: IMP_DIM_IMP_DIM_remove

  * This is a callback function associated with an action taken from a

  * UIStyler object.

  *

  * Input: dialog_id - The dialog id indicate which dialog this callback

  * is associated with. The dialog id is a dynamic,

  * unique id and should not be stored. It is

  * strictly for the use in the NX Open API:

  * UF_STYLER_ask_value(s)

  * UF_STYLER_set_value

  * client_data - Client data is user defined data associated

  * with your dialog. Client data may be bound

  * to your dialog with UF_MB_add_styler_actions

  * or UF_STYLER_create_dialog.

  * callback_data - This structure pointer contains information

  * specific to the UIStyler Object type that

  * invoked this callback and the callback type.

  * -----------------------------------------------------------------------*/

  int IMP_DIM_IMP_DIM_remove ( int dialog_id,

  void * client_data,

  UF_STYLER_item_value_type_p_t callback_data)

  {

  /* Make sure User Function is available. */

  int response;

  tag_t dim_tag,view_tag;

  double cursor[3];

  UF_DRF_inspection_type_t dim_inspection_type;

  if ( UF_initialize() != 0)

  return ( UF_UI_CB_CONTINUE_DIALOG );

  /* ---- Enter your callback code here ----- */

  UF_UI_select_with_single_dialog("選擇一個尺寸","選擇工程圖尺寸",

  UF_UI_SEL_SCOPE_WORK_PART, init_proc, NULL,

  &response, &dim_tag, cursor, &view_tag);

  if (response == UF_UI_OBJECT_SELECTED ||

  response == UF_UI_OBJECT_SELECTED_BY_NAME)

  {

  UF_DISP_set_highlight(dim_tag,0);

  UF_DRF_ask_dim_inspection_type(dim_tag,&dim_inspection_type);

  if(dim_inspection_type==UF_DRF_WITH_INSPECTION)

  {

  dim_inspection_type=UF_DRF_NO_INSPECTION;

  UF_DRF_set_dim_inspection_type(dim_tag,dim_inspection_type);

  }

  else

  {

  uc1601("此尺寸非重要尺寸!",1);

  }

  }

  UF_terminate ();

  /* Callback acknowledged, do not terminate dialog */

  return (UF_UI_CB_CONTINUE_DIALOG);

  /* or Callback acknowledged, terminate dialog. */

  /* return ( UF_UI_CB_EXIT_DIALOG ); */

  }

  2.5.4 編譯和運行程序

  選擇菜單命令Build→Rebuild All,編譯程序后打開UG工程圖模塊,點擊尺寸標識工具條上的重要尺寸,顯示圖10對話框,選取重要尺寸按鈕,并選取一尺寸進行標識,或選取去除重要尺寸按鈕進行去除,如圖11所示。

   

   

  有關參考尺寸和基本尺寸的標識工具開發過程同上,這里不再累述,圖12所示為三類標識的具體應用:

   

  3結論

  通過工作應用實踐證明,本尺寸標識工具簡潔而方便,大大提高了工程圖繪制的效率,并提升了工程師在工程圖設計中進行尺寸標識的意識。


久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区
国产精品动漫网站| 国产精品高潮呻吟久久av无限 | 麻豆精品视频| 三年中文高清在线观看第6集| 欧美激情国产高清| 国产精品久久999| 国产精品日韩欧美一区二区三区 | 成人国产精品一区二区| 麻豆亚洲一区| 黄色一级免费大片| 欧美亚洲第一区| 欧美在线一区二区三区四| 日韩网站在线免费观看| 日韩免费电影一区二区三区| 欧美一级片久久久久久久| 视频一区二区三| 日本精品视频网站| 日本不卡二区| 欧美久久久久久久| 秋霞在线一区二区| 日本高清视频免费在线观看| 日本欧美精品在线| 欧美亚洲另类久久综合| 黄www在线观看| 国产女主播一区二区| 成人久久久久爱| 久久人人97超碰精品888| 久久视频这里有精品| 久久久久久美女| 久久精品国产欧美亚洲人人爽| 国产精品青青草| 国产精品久久9| 一区二区三区一级片| 中文字幕一区二区三区四区五区人| 亚洲图色在线| 日本香蕉视频在线观看| 欧美精品成人网| 成人在线国产精品| 九色91在线视频| 欧美大肥婆大肥bbbbb| 亚洲精品偷拍视频| 日本一区二区三区四区五区六区 | 欧美一级黑人aaaaaaa做受| 激情深爱综合网| 粉嫩高清一区二区三区精品视频 | 国产精华一区| 精品国产自在精品国产浪潮| 国产精品久久久久影院日本| 亚洲综合第一页| 极品日韩久久| 7777奇米亚洲综合久久| 国产精品久久久久免费a∨大胸| 一女被多男玩喷潮视频| 欧美性猛交久久久乱大交小说| 俄罗斯精品一区二区三区| 精品国产美女在线| 一区二区视频在线观看| 热久久美女精品天天吊色| 福利视频久久| 国产精品久久久久久久久久小说 | 国产亚洲精品美女久久久m| 99国精产品一二二线| 久久久精品国产一区二区| 亚洲xxxx视频| 国产日韩欧美中文在线播放| 久久久久久久久网| 亚洲永久在线观看| 精品无人区一区二区三区| 国产成年人在线观看| 一区二区三区一级片| 欧美精品亚洲精品| 久久青草精品视频免费观看| 中文字幕99| 国产原创中文在线观看| 久久久久久久电影一区| 五月天婷亚洲天综合网鲁鲁鲁| 国产一区二区高清视频| 日韩少妇与小伙激情| 日韩av免费一区| jizzjizz国产精品喷水| 精品久久久久久中文字幕动漫| 日韩亚洲欧美视频| 久久人人97超碰人人澡爱香蕉| 一本色道久久综合亚洲二区三区 | 国产深夜精品福利| 久久精品国产欧美亚洲人人爽| 日日噜噜夜夜狠狠久久丁香五月 | 久久av喷吹av高潮av| 亚洲精品欧美日韩| 成人精品视频在线| 欧美日韩国产成人在线| 欧美日韩高清在线一区| 国产成人鲁鲁免费视频a| 日韩欧美视频第二区| 国产成人在线免费看| 日本三级中国三级99人妇网站| 久久琪琪电影院| 日日摸日日碰夜夜爽av| 国产传媒一区二区三区| 日本十八禁视频无遮挡| 久久全国免费视频| 日本精品久久久久中文字幕| 国产成人av在线| 日本阿v视频在线观看| 日韩在线视频一区| 欧美在线日韩精品| 久久精品国产96久久久香蕉| 黄在线观看网站| 久久中文精品视频| 国产欧美日韩小视频| 中文字幕精品一区日韩| 91久久在线视频| 日韩videos| 国产精品热视频| 国产精品一区二区女厕厕| 亚洲欧美日韩综合一区| 国产福利视频一区二区| 欧美在线精品免播放器视频| 国产精品美女久久久免费| 国产伦精品一区二区三区视频孕妇| 欧美大片欧美激情性色a∨久久 | 国产精品自拍偷拍| 亚洲乱码日产精品bd在线观看| 久久久女人电视剧免费播放下载| 日本精品一区二区三区不卡无字幕| 日韩中文字幕第一页| 国产在线精品一区| 亚洲影院色在线观看免费| 久久综合九色综合网站| 欧美在线一区二区视频| 精品国产一区二区三区麻豆小说| 91精品在线观看视频| 日韩欧美亚洲在线| 国产精品我不卡| 国产精品一区=区| 电影午夜精品一区二区三区| 久久精品2019中文字幕| 国产精品一区二区欧美黑人喷潮水| 三区精品视频| 国产精品久久久久高潮| 91高清免费在线观看| 激情成人开心网| 无码少妇一区二区三区芒果| 国产精品美女在线| 91免费黄视频| 国模精品娜娜一二三区| 日韩av电影国产| 欧美成人一二三| 国产盗摄视频在线观看| 国产伦理久久久| 日韩免费黄色av| 曰韩不卡视频| 国产精品美女无圣光视频| 91国偷自产一区二区三区的观看方式| 欧美日韩精品一区| 亚洲精品久久久久久一区二区| 国产精品毛片a∨一区二区三区|国 | 国产成人av影视| 日韩在线国产| 国产精品久久精品国产| 国产成人精品免费视频| 国产欧美日韩专区发布| 欧美伊久线香蕉线新在线| 亚洲免费在线精品一区| 不卡伊人av在线播放| 日韩在线欧美在线| 97免费在线视频| 国产日韩在线亚洲字幕中文| 日韩欧美精品在线不卡| 亚洲精品一区国产精品| 欧美日韩xxxxx| 国产精品视频永久免费播放| 久久视频免费在线| 99国产精品久久久久老师| 国产日韩亚洲精品| 极品美女扒开粉嫩小泬| 青青草原一区二区| 视频在线99| 午夜精品一区二区三区视频免费看| 精品国偷自产一区二区三区| 国产精品久久久久久久久免费看| www.亚洲免费视频| 久草综合在线观看| 久久久99国产精品免费| 91精品国产高清久久久久久久久 | 97碰碰碰免费色视频| 国产精品一线二线三线| 国产一区二区高清不卡| 国模无码视频一区二区三区| 欧美久久久久久| 精品欧美国产| 精品一区二区三区视频日产| 麻豆一区二区三区在线观看| 精品一区二区视频| 国产一区欧美二区三区| 精品一区二区三区自拍图片区| 美女亚洲精品| 国产日韩在线看片| 成人久久一区二区三区| 成人精品视频一区二区|