仿真在线:有限元分析咨询与培训中心——Ansys|Fluent|Abaqus|HFSS|SolidWorks|课程培训

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

2013-05-18  by:廣州有限元分析、培訓中心-1CAE.COM  來源:仿真在線

周兆國 來源:e-works
關鍵字:尺寸標識工具 重要尺寸 參考尺寸 基本尺寸 UG NX5.0
本文首先闡述了工程圖樣尺寸標識的分類,進而為達到快速而方便的進行尺寸標識,結合UGNX5.0強大的工程圖模塊和完善的二次開發模塊,同時運用VC++6.0為編程工具,開發出與UG軟件完全融為一體的尺寸標識工具。

0 前言
    
     工程圖樣是現代工業生產的重要技術文件,是設計師表達設計思想,技術交流,組織生產和加工的重要文件。而在工程設計過程中,工程圖中工程信息標注的工作量要占到設計工作的一半以上,因此,操作簡便、完全符合國標的標注方式可以提高設計效率,受到工程師的高度重視。
    
     工程信息除包括文本或技術要求、尺寸公差、表面粗糙度、形位公差、基準符號等以外,還有經常在工程圖樣中出現的尺寸標識,這里的尺寸標識是指以下幾類尺寸:
    
     1、重要尺寸(Important Dimension):通常用長腰形框圖框標識的尺寸,此類尺寸為必檢尺寸;
    
     2、參考尺寸(Referenced Dimension):用括號標識的尺寸,主要應用于以下幾方面的:
    
     1)、尺寸鏈封閉時,在其中一個上加括號(提示此尺寸);
    
     2)、在某些不主要場合,尺寸依生產工藝條件而定時,加注參考標記;
    
     3)、局部試圖為了反映某個尺寸的重要位置,可重復標注但必須加注參考標記(尺寸可帶公差)。
    
     3、基本尺寸(Basic Dimension):是指設計中給定的尺寸,通常用矩形框來標識。基本尺寸是根據使用要求,通過計算、試驗或按類比法確定的,現在的尺寸一般都標準化了,以減少定制刀具、量具的規格。
    
     目前市面上應用的各種工程軟件(象UG NX、proe、Catia、AutoCAD等)中大多對文本或技術要求、尺寸公差、表面粗糙度、形位公差、基準符號等工程信息都作了相應的處理,而且功能都非常成熟和完善,而尺寸標識功能則被忽略或其功能操作較為不便,因此,快速方便的尺寸標識工具在工程圖樣設計中就起到具足輕重的作用。
    
     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_stds\DIM_ID工程文件夾,在其下建立以下四個文件夾目錄(圖1):
    
     1)、startup 目錄存放UG啟動時需要加載的動態連接庫文件(*.dll)、菜單腳本文件(*.men)和工具欄腳本文件(*.tbr);
     2)、application 目錄存放尺寸標識工具的功能擴展程序文件,如UIStyler對話框文件(*.dlg),工具圖標文件(*.bmp);
     3)、code 目錄存放尺寸標識工具的程序源代碼(該目錄在新建工程時創建);
     4)、doc 目錄存放尺寸標識工具的使用說明。

UG NX5.0的工程圖尺寸標識工具的開發autocad design圖片1


     2.1.2 設置系統環境變量
    
     在控制面板中點擊系統→高級→環境變量,增加環境變量UGII_USER_DIR,使其指向
    
     D:\ Ug_stds\DIM_ID。

2.2 編寫尺寸標識工具的菜單
    
     應用UG/OPEN MenuScript所提供了一套用于定義Unigraphics菜單的腳本語言,運用記事本工具按照MenuScript腳本語言語法可定義DIM.men文件,將該文件保存在D:\ Ug_stds\DIM_ID\startup文件夾中,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所示:

UG NX5.0的工程圖尺寸標識工具的開發autocad design圖片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所示:
      
     

UG NX5.0的工程圖尺寸標識工具的開發autocad design圖片3


     
     2.4 創建尺寸標識工具的交互接口界面
    
    
     UG/OPEN UIStyler提供了快速生成Unigraphics對話框的功能,產生的對話框可以在MenuScript文件中被調用。
    
     1)、在Unigraphics Gateway狀態下,選擇Start→All Applicatoins→User Interface styler…,進入UIStyler;
     2)、利用UIStyler提供的控件分別創建重要尺寸,參考尺寸和基本尺寸的對話框,設置成添加和去除尺寸標識按鈕,圖4所示為重要尺寸的對話框:
     

UG NX5.0的工程圖尺寸標識工具的開發autocad design圖片4


     
     3)、將三類尺寸標識的對話框文件(*.dlg文件)保存至applicatoin文件夾中,UIStyler針對每一個*.dlg文件自動創建對應的*.h文件和*.c文件,自動保存至applicatoin文件夾中。
    
     運行UG NX后在主界面上點擊重要尺寸標識按鈕時出現的對話框,如圖5所示:
     

UG NX5.0的工程圖尺寸標識工具的開發autocad design圖片5

2.5 創建尺寸標識工具的動態鏈接庫文件
    
     動態鏈接庫(DLL)文件適用于對UG/OPEN API的內部模式,程序只能在Unigraphics的界面環境中運行。重要尺寸標識功能所對應的動態鏈接庫文件(Imp_Code.dll)的創建過程如下:
    
     2.5.1 在Visual C++中使用MFC應用向導新建工程項目Imp_Code.dsw,如圖6所示;
     

UG NX5.0的工程圖尺寸標識工具的開發autocad design圖片6


     
     2.5.2 設置UG應用開發環境
    
     1)、工程設置
    
     選擇菜單命令Project→Setting,彈出Project Setting對話框,選擇Link選項卡,在Output file name文本框中輸入D:\Ug_stds\DIM_ID\startup\Imp_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所示:

UG NX5.0的工程圖尺寸標識工具的開發autocad技術圖片7


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

UG NX5.0的工程圖尺寸標識工具的開發autocad技術圖片8


     
     2.5.3 編寫消息映射代碼
    
     1)、建立用戶文件
    
     在VC中選擇菜單命令Project→Add To Project→New,添加新文件Main.h和Main.cpp
    
     到工程中,并將這兩個文件作為重要尺寸標識工具的工程主文件。添加新文件APP.h和APP.cpp到工程中,并將這兩個文件作為重要尺寸標識工具的工程應用文件,如圖9所示:

UG NX5.0的工程圖尺寸標識工具的開發autocad技術圖片9

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所示。

UG NX5.0的工程圖尺寸標識工具的開發autocad技術圖片10

UG NX5.0的工程圖尺寸標識工具的開發autocad技術圖片11


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

UG NX5.0的工程圖尺寸標識工具的開發autocad技術圖片12


     3結論
    
     通過工作應用實踐證明,本尺寸標識工具簡潔而方便,大大提高了工程圖繪制的效率,并提升了工程師在工程圖設計中進行尺寸標識的意識。
    
     [參考文獻]
    
     [1]黃翔、李迎光,UG應用開發教程與實例精解,北京:清華大學出版社,2005.4.
     [2]侯永濤、丁向陽,UG/Open二次開發與實例精解,北京:化學工業出版社,2007.4.
     [3]譚浩強,C程序設計,北京:清華大學出版社,1999.12.
     [4]鄭莉,董淵,C++語言程序設計,北京:清華大學出版社,2001.7.


開放分享:優質有限元技術文章,助你自學成才

相關標簽搜索:UG NX5.0的工程圖尺寸標識工具的開發 AutoCAD培訓 AutoCAD培訓課程 AutoCAD圖紙設計 AutoCAD在線視頻 AutoCAD技術學習教程 AutoCAD軟件教程 AutoCAD資料下載 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓 

編輯
在線報名:
  • 客服在線請直接聯系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com




主站蜘蛛池模板: 全球石油化工网 - 石油化工资讯,石油化工机械,石油化工设备,石油化工贸易,石油化工技术,尽在石油化工网 | 水暖空调厂家|山东水暖空调厂家|泰安燃气壁挂炉-泰安市鸿雁科贸有限公司 | 皮革耐折试验机-消字率测试仪-面具全视野测试仪-东莞市誉扬检测仪器有限公司 | 首页 | 华源医药网| 世博磁力泵,耐腐蚀磁力泵,耐酸碱磁力泵,氟塑料磁力泵-苏州冠裕机电科技有限公司 | 戒网瘾学校-陕西正规戒网瘾-叛逆青少年教育学校-重生教育官网 | 深圳专卖店设计,餐饮空间设计,酒店空间策划设计【左右高端人文空间设计公司】 | 水处理设备_纯净水设备_软化水设备_反渗透水处理设备「陕西甘肃青海宁夏新疆」认准海川环保 | 康复支具-医用颈托-辅助固定矫形器-骨折固定带生产厂家-安平县康信医疗器械有限公司 | 小麦硬度指数仪-石灰活性测定仪-智能型砂强度仪-北京同德创业科技有限公司 | 中房网_中国房地产业协会官方网站| 中频感应加热设备_高频感应加热电源厂家_高频淬火设备_容大电源 中派康明斯发电机_玉柴发电机厂家_静音移动拖车发电机-深圳市斯坦福电力设备有限公司 | 新2025澳门天天开好彩生肖对照表,2025新澳精准正版免费,2025新澳今晚开奖资料大全,新澳门四肖期期准免费,新澳门今晚9点30分开奖结果 | 新中式家具,广东新中式家具,广州新中式家具,佛山新中式家具,顺德新中式家具,乐从新中式家具,新中式家具厂家直销--唐明雅居 | 潍坊沃林机械设备有限公司-牵引式风送果园打药机,悬挂式风送果园喷雾机,自走式果树喷药机,车载式风送远程喷雾机-潍坊沃林机械设备有限公司-牵引式风送果园打药机,悬挂式风送果园喷雾机,自走式果树喷药机,车载式风送远程喷雾机 潍坊网络推广,临沂360推广,东营360推广,枣庄360推广,潍坊网站建设,潍坊网络公司,潍坊360搜索,潍坊APP开发,潍坊360推广,潍坊360代理,潍坊点睛网络科技有限公司 | 输送机电动滚筒_山东电动滚筒_输送机滚筒_皮带输送机-山东中输输送机械有限公司 | 王者荣耀/和平精英扫码上号登录器_微信安卓苹果扫码上号登录软件 - 上号宝扫码登录器 | 内蒙古慧申设计顾问有限公司-官网 | 液力耦合器,摩擦型液力耦合器生产厂家-河南省华升矿机有限公司 | 加药装置-排油烟装置-工业滤水器-连云港灵动 | 实验反应釜,高压反应釜,玻璃反应釜,不锈钢反应釜-烟台招远松岭化工设备有限公司 | 宁波雷豹机电科技有限公司|雷豹冷风机|雷豹工业大风扇|MFC18000|MFC16000|MFC6000|EF3622|EF4222|EF4822|移动工业蒸发式冷风机空气冷却器|大型工业空调扇|雷豹移动式工业大风扇|雷豹大风扇|生产厂家|公司官网 | 全自动|电加热配液罐,浓缩器厂家-森博百科| 数造云-面向3D打印的云制造平台 数控落地镗铣床_数控刨台式镗铣床_数控龙门加工中心-青岛辉腾机械设备有限公司 | 树脂排水沟,树脂混凝土排水沟生产厂家-吉林省科维水泥制品公司 | 景县泉兴永塔业有限公司-广播电视塔、通信塔、电力塔、交通设施、监控杆塔、气象塔、森林防火瞭望塔、避雷塔、烟筒塔、训练塔 | 压力变送器,差压变送器,液位变送器,温度变送器生产厂家价格-西安仕乐克仪表科技有限公司 | 思沃普智能会议预约管理系统-视频会议管理-信息发布-访客管理-会议运维-会议支持-工位管理系统 | 上海慧泰仪器制造有限公司_一体型马弗炉-可控真空干燥箱-强光稳定性试验箱 | 企多网-B2B网站,B2B商务平台免费b2b,推荐注册送积分,免费注册企业商铺, | 太阳能路灯生产厂家-郑州太阳能高杆灯价格-道路照明智能路灯-河南坤德照明 | 木材粉碎机-树枝秸秆粉碎机价格-双轴金属撕碎机生产线-金禾机械厂家 | 万博瑞升(天津)科技有限公司-管道应力|管道振动|脉动|CAE,CFD 弯箍机_钢筋弯箍机_全自动钢筋弯箍机_数控弯箍机-建科智能装备制造(天津)股份有限公司 | 狠狠穞A片一區二區三區-免费网站在线观看人数更新时间-欧洲尺码日本尺码专线不卡顿,国产大尺度禁片未删减版,baomaav | 潜水搅拌机|潜水推流机|曝气机|刮吸泥机|格栅除污机-南京远蓝环境设备 | 校园防欺凌|视频一键式报警器|防霸凌报警柱|停车场语音对讲|商铺联网报警|应急广播音柱|居家养老一键通|盾王可视联网运营中心 | 山东金起起重机械有限公司[官网]-金桥银路悬臂吊,金起龙门吊,山东金起起重行吊,单梁起重机 | 咪咕体育直播,咪咕直播,CCTV5直播,体育直播,高清直播,腾讯体育直播,篮球直播,足球直播 | 欧路哲门窗|佛山欧路哲门窗有限公司|专业门窗定制品牌 | 泡沫混凝土垫层填充厂家,发泡混凝土垫层填充,轻质混凝土垫层填充厂家,深圳市鸿奥建材发展有限公司 | 挖掘机|小型挖掘机|挖掘机抓木机|轮式挖掘机|宝鼎挖掘机-宝鼎液压机械公司厂家直销 |