版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、日志日志是快速實(shí)用的NX二次開發(fā)工具,通過錄制、編輯和回放用戶交互操作,日志自動生成大量的程序代碼,可以用來創(chuàng)建二次開發(fā)解決方案。日志基于通用應(yīng)用程序接口和.NET框架,它在NX交互進(jìn)程中創(chuàng)建一個腳本文件,通過腳本文件回放用戶交互操作。在腳本文件的基礎(chǔ)上,進(jìn)行進(jìn)一步編輯修改,通過添加的用戶接口和編程邏輯可以快速進(jìn)行客戶化的定制開發(fā)。日志功能支持VisualBasic,C+,Java和C#等語言,日志錄制前需要選擇其中一種通用的API語言。日志錄制完成后,通過修改編輯應(yīng)用于的應(yīng)用程序中。目前Windows平臺只支持VisualBasic.NET和C#.NET兩種語言,其他語言可以在UNIX平臺上
2、使用。本章介紹日志的錄制、編輯和回放,以及如何使用日志功能輔助進(jìn)行NX二次開發(fā),提高開發(fā)效率。2.1日志操作日志的基本功能包括日志的錄制、回放和編輯等。作為NX二次開發(fā)的重要手段,NX二次開發(fā)的編程人員首先必須熟練掌握日志的使用方法。卜II欝百雪.圖1日志菜單工具條日志命令可以操作菜單,也可以點(diǎn)擊相應(yīng)的工具條,見圖1。日志錄制完成后,生成日志文件,用戶可以對日志文件進(jìn)行編輯和回放。回放日志時,在日志管理器中瀏覽并選擇日志文件,點(diǎn)擊運(yùn)行按鈕來執(zhí)行日志。使用日志的回放功能可以重現(xiàn)日志錄制的交互操作過程。在錄制日志前,先設(shè)置錄制編程語言,選擇PreferencesUserInterface,在參數(shù)設(shè)
3、置對話框里打開日志標(biāo)簽,在語言選項中選擇編程語言。如圖2,本章默認(rèn)選擇的編程語言為C#語言。OVOC績oumalFileFormatQASCII*UnicodeUnicodeBigEndianQUTF-80InsertMenu/DialogBox匸omments圖2日志語言選擇211日志指示器并不是所有NX命令都支持日志,日志錄制時,每一個NX命令都有一個標(biāo)記來表示該命令是否支持日志,這個標(biāo)記叫做日志指示器,在菜單和工具條上都有顯示。表1顯示了日志指示器的標(biāo)識及其意義部分支持意味著并非支持所有的NX命令。表1:日志指示器標(biāo)識標(biāo)識說明菜單命令支持日志菜單命令部分支持日志口工具條支持日志b工具條部
4、分支持日志日志錄制時,如果日志指示器沒有顯示,可以通過修改環(huán)境變量UGII_JOURNAL_INDICATOR來控制日志指示器的關(guān)閉和顯示。當(dāng)該環(huán)境變量的值為0時,日志指示器關(guān)閉,環(huán)境變量為其他值或者沒有設(shè)置時,打開日志顯示器。2.1.2錄制日志點(diǎn)擊工具條錄制按鈕或者選擇ToolsfJournalfRecord錄制日志,指定輸出文件存儲日志。日志錄制完成后,選擇ToolsfJournalfStopRecording停止錄制,指定路徑下生成了一個日志腳本文件,比如QuickExtrud.cs。所有支持日志的NX命令可以錄制成通用應(yīng)用程序接口代碼。如果錄制語言選用C#,可以錄制的日志文件的后綴名為
5、.cs,如果選用VB.NET語言,則后綴名為.vb。詳細(xì)步驟如下:步驟一、新建或者打開一個部件。點(diǎn)擊RecordJournal工具條命令或者菜單ToolsfJournalfRecord。彈出JournalRecord對話框,要求用戶輸入錄制文件名,見圖3,文件類型為*.cs,如果文件類型是*.vb,在參數(shù)預(yù)設(shè)置中設(shè)置錄制的編程語言即可。假設(shè)輸入錄制的文件名為QuickExtrude,單擊OK后,進(jìn)入錄制狀態(tài)。查找氾IS():1QuickExtmdeT*自呼最近璽可的位名稱修改日期翹大小journal.匚s2011/10/1015:29VisualC#Sourcefile5KB汀對QuickEx
6、trude.cs2011/9/2811:01VisualC#Sourcefile7KB|皙|QuickExtrudel.cs2011/9/2616:29VisualC#Sourcefile11KB桌面芒JournalRecordr庫計算機(jī)網(wǎng)絡(luò)文件名:|QuicKEmtmde.cs文件類型4):IC#ScrnrceFiles(*.ce)步驟二、錄制日志,錄制日志的實(shí)質(zhì)是用腳本語言來記錄用戶的交互操作,注意只有日志指示器中支持的命令才能被錄制成腳本文件。錄制過程中可以靈活使用Journal命令,比如可以暫停錄制、插入注釋等。比如用戶操作是在NX交互環(huán)境中,選擇了一個草圖,進(jìn)行拉伸。步驟三、錄制完成
7、用戶選擇菜單JournalStopRecording,可以停止錄制。錄制完成后,在步驟一指定的路徑下,生成一個用戶命名的腳本文件,比如QuickExtrude.cs。2.1.2編輯回放日志日志錄制完成后,選擇菜單ToolsfJournalfPlay回放日志,在日志管理器中,點(diǎn)擊Browse按鈕,選擇錄制的日志文件,點(diǎn)擊Run按鈕,回放日志。通過回放日志,可以重顯錄制的交互操作。在部件導(dǎo)航器中,刪除錄制的拉伸草圖的特征。見圖4。&rPartNavigatorName*LayerCc(:HistoryMode1111+每ModelViewsi飼Cameras宙百UserExpressions-曲M
8、OdelHistoryBlock(0)Sketch(4)5KETC.Sketch(8)5KETC.Sketch(12)SKET.Extrude(13)圖4日志回放生成的特征如圖5,在日志管理器中選擇錄制的QuickExtrude.cs日志文件,單擊Run,運(yùn)行日志文件。在部件導(dǎo)航器中生成了一個拉伸特征,該拉伸特征和錄制的交互操作產(chǎn)生的拉伸特征完全相同。編輯日志時,在日志管理器中,點(diǎn)擊Edit按鈕,在管理器中打開選定的腳本文件,用戶可以直接修改,編輯完成后回放日志。如果編輯的日志文件存在錯誤,回放時候,彈出錯誤信息窗口,同時在日志管理器中高亮顯示錯誤行,見圖6。錯誤信息為:存在語法錯誤,代碼行尾
9、缺分號,提醒用戶修改錯誤。編輯日志文件可以使用其他任意文本編輯器。專業(yè)編程人員可以使用VisualStudio.NET,利用它強(qiáng)大的語法糾錯能力,進(jìn)行腳本文件的修改,編譯測試錯誤,可以極大的提高開發(fā)效率。JournalManagerXFileName11JClose圖5日志回放圖6日志錯誤顯示22日志在NX二次開發(fā)中的應(yīng)用日志可用于NX的二次開發(fā),但是直接錄制日志沒有用戶界面,而且回放時,根據(jù)確定的對象名稱重復(fù)錄制的步驟。本節(jié)將討論如何修改日記提供用戶界面,使日志支持通用的應(yīng)用程序的開發(fā)。也將討論如何把日志遷移到一個完全編譯和鏈接的應(yīng)用程序。修改日志,在日志中添加對話框等操作的后日志的日志稱為
10、日志應(yīng)用程序。把其他需要編譯鏈接的應(yīng)用成為完全編譯和鏈接的應(yīng)用程序。把錄制的日志應(yīng)用到完全編譯鏈接的應(yīng)用程序中是日志的非常重要的應(yīng)用。表2顯示了不同應(yīng)用程序的差異,一個是錄制的日志,另外一個是加入到應(yīng)用程序中的日志,另外一個是完全編譯和鏈接的應(yīng)用程序。String)的標(biāo)簽,第二個表示對話框標(biāo)題,第三個表示,輸表2不同日志應(yīng)用程序日志(被記錄)單個源文件操作和錄制時相同命名的對象,由作者使用參數(shù)輸入限NX命令的支持日志日志應(yīng)用程序(添加用戶界面)單個源文件對于用戶選擇的對象,由用戶在運(yùn)行時使用參數(shù)輸入可以用所有.NET支持的通用API的類在NX啟動階段不提供初始化在NX啟動階段不提供初始化事件事
11、件基于許可檢驗的特征基于許可檢驗的特征完全被編譯和鏈接的應(yīng)用程序任何數(shù)量的源文件對于用戶選擇的對象,由用戶在運(yùn)行時使用參數(shù)輸入可以使用所有通用API的類和任何所需的.NET類在NX啟動階段,應(yīng)用程序可以被自動加載,啟動方法可以被定義為注冊事件來處理,以支持對話框,用戶定義的對象和許多其他運(yùn)行選項在開發(fā)周期中需要作者許可,在向用戶發(fā)布前需要簽名使用日志輔助創(chuàng)建NX二次開發(fā)項目時候,需注意以下幾點(diǎn)。在Window平臺上,日志語言目前僅限于VisualBasic.NET和C#.NET。如果需要開發(fā)其他語言的應(yīng)用程序,可以編譯日志生成動態(tài)鏈接庫,并與創(chuàng)建的NX二次開發(fā)應(yīng)用程序連接起來。一個日志中可能無
12、法調(diào)用其他日志中的方法。如果一個文件中編寫代碼太龐大而復(fù)雜,需要多個文件時候,可以把它們編譯和鏈接到同一個應(yīng)用程序中。一個日志首次運(yùn)行時,由于.NET庫的加載,第一次執(zhí)行需要較長的時間。NX只能與部分.NET庫鏈接。如果日志鏈接到還沒支持.NET庫的時候,將發(fā)生錯誤。在NX7.5版本中,日志支持.NET庫包含:mscorlib.dllSystem.dllSystem.Windows.Forms.dllSystem.Drawing.dll除了這些庫,.NET功能中的其他類庫無法在日志中回放。如果應(yīng)用程序需要其他庫,編譯和鏈接該庫到應(yīng)用程序中。例如,如果應(yīng)用程序需要實(shí)現(xiàn)一個客戶機(jī)/服務(wù)器體系結(jié)構(gòu),
13、需要編譯鏈接System.Runtime.Remoting.dll。2.3日志應(yīng)用程序范例范例QuickExtrude演示了錄制日志、編輯日志和運(yùn)行日志等使用日志創(chuàng)建日志應(yīng)用程序的整個過程。使用該案例需要先打開或者創(chuàng)建一個部件,該部件中至少含有一個草圖特征。日志錄制時先選擇一個草圖,然后通過拉伸創(chuàng)建實(shí)體。錄制完成后編輯日志源代碼,要求能夠彈出用戶界面讓用戶交互選擇草圖,在對話框中輸入拉伸起始距離和終止距離,進(jìn)行拉伸操作。本例的關(guān)鍵在于如何在錄制的代碼中,添加用戶界面包含用戶輸入拉伸起始和終止位置的對話框以及草圖選擇的對話框。這個例子也說明了如何通過編輯一個日志文件來創(chuàng)建日志應(yīng)用程序。2.3.1
14、添加拉伸位置對話框草圖拉伸時,需要用戶輸入拉伸的起始位置和終止位置,日志根據(jù)交互操作用戶輸入的值設(shè)置拉伸起始和終止值(0.0和1.0),進(jìn)行拉伸。C#代碼如下:extrudeBuilder1.Limits.StartExtend.Value.RightHandSide=0;extrudeBuilder1.Limits.EndExtend.Value.RightHandSide=1;如果使用對話框的形式動態(tài)確定草圖拉伸的起始和終止位置,需要修改代碼,添加一個簡單的用戶界面,用對話框輸入框控件的值代替0.0和1.0。NXOpen的.NET庫中的類NXInputBox類提供了2種靜態(tài)函數(shù)GetInp
15、utNumber和GetInputString,分別用來創(chuàng)建數(shù)值輸入對話框和字符串輸入對話框。靜態(tài)函數(shù)GetInputNumber和GetInputString分別有多個重載的靜態(tài)函數(shù),重載的靜態(tài)函數(shù)的區(qū)別在于輸入?yún)?shù)個數(shù)的不同,有關(guān)這2個靜態(tài)函數(shù)的重載見表3。表3NXInputBox靜態(tài)函數(shù)說明函數(shù)名重載函數(shù)形式說明GetlnputNumberGetlnputNumber(String)一個字符串輸入?yún)?shù)表示數(shù)值輸入框的標(biāo)簽GetInputNumber(String,String)兩個字符串輸入?yún)?shù),第一個表示數(shù)值輸入框的標(biāo)簽,第二個表示對話框標(biāo)題GetlnputNumber(String,
16、String,含有三個字符串輸入?yún)?shù),第一個表示數(shù)值輸入框入數(shù)值的默認(rèn)字符串。三個輸入?yún)?shù),前2個字符串輸入?yún)?shù),分別表示GetlnputNumber(String,String,數(shù)值輸入框標(biāo)簽和對話框標(biāo)題,第三個Double類Double)型的參數(shù),表示輸入的數(shù)值的默認(rèn)值GetInputString(String)一個字符串輸入?yún)?shù),表示字符串輸入框的標(biāo)簽2個字符串輸入?yún)?shù),第一個表示字符串標(biāo)簽,第GetlnputString(String,String)二個表示對話框的標(biāo)題GetlnputString3個字符串輸入?yún)?shù),第一個表示字符串輸入對話GetlnputString(String,S
17、tring,St框的標(biāo)簽,第二個表示對話框的標(biāo)題,第三個表示ring)輸入對話框的字符串的默認(rèn)值本例使用靜態(tài)函數(shù)GetlnputString函數(shù)的第三種重載形式定義2個含有一個字符輸入框的對話框。使用下面4行代碼替換上面錄制的2行代碼。stringstart_value=NXInputBox.GetInputString(SettheStartLimit:,ExtrudeLimit,0);stringend_value=NXInputBox.GetInputString(SettheEndLimit:,ExtrudeLimit,1);extrudeBuilder1.Limits.StartEx
18、tend.Value.RightHandSide=start_value;extrudeBuilder1.Limits.EndExtend.Value.RightHandSide=end_value;替換代碼中定義列2個string類型的變量start_value和end_value,使用NXInputBox類GetInputString方法給他們賦值。NXI叩utBox的靜態(tài)函數(shù)彈出對話框中要求用戶輸入需要的拉伸的位置值。要訪問該接口類,必須包含NXOpenUl名稱空間。UsingNXOpenUI;通過NXlnputBox類的GetlnputString靜態(tài)方法添加了2個對話框,對話框形式見
19、圖7。圖7拉伸位置對話框2.3.2添加草圖選擇對話框為了添加草圖選擇,創(chuàng)建一個靜態(tài)函數(shù)SelectSketch,該函數(shù)的功能添加并獲取用戶界面選擇的草圖。在添加對象選擇對話框之前必須了解日志中對象的選擇粘性。日志錄制的是精確事件,在錄制過程中用戶選擇的對象和操作中都是確定的。日志中的對象不是“意圖”選擇,也不是一系列用戶操作獲得的一類的對象。相反地,日志記錄的是所選對象實(shí)際名稱,以及對這些對象調(diào)用的具體方法。日志回放時只能對相同命名的對象進(jìn)行操作。這種行為被稱為選擇粘性SelectionStickiness例如,錄制抑制視圖中的所有基準(zhǔn)面的交互操作,日志記錄的是抑制的每個基準(zhǔn)面的名稱和抑制基準(zhǔn)
20、面的最終方法。日志回放時將根據(jù)錄制對象的名稱進(jìn)行操作。如果日志脫離它原始記錄的環(huán)境,選擇粘性有時會導(dǎo)致回放失敗。例如,如果該日志在其他部件文件中回放,并且這個部件文件不包含相同名字的基準(zhǔn)面,將會產(chǎn)生錯誤。在QuickExtrude的例子中,錄制選擇粘性的草圖名稱為“SKETCH_002”Sketch(12)為草圖特征名,拉伸曲線為草圖特征中的名為“curveline7”的曲線。NXOpen.Features.Featurefeatures1=newNXOpen.Features.Feature1;NXOpen.Features.SketchFeaturesketchFeature1=(NXOp
21、en.Features.SketchFeature)workPart.Features.FindObject(SKETCH(12);features10=sketchFeature1;CurveFeatureRulecurveFeatureRule1;curveFeatureRule1workPart.ScRuleFactory.CreateRuleCurveFeature(features1);section1.AllowSelfIntersection(true);SelectionIntentRulerules1=newSelectionIntentRule1;rules10=curve
22、FeatureRule1;Sketchsketch1=(Sketch)workPart.Sketches.FindObject(SKETCH_002);Lineline1=(Line)sketch1.FindObject(CurveLine7);NXObjectnullNXObject=null;Point3dhelpPoint1=newPoint3d(1.38057758650344,1.03015642718979,4.0);section1.AddToSection(rules1,line1,nullNXObject,nullNXObject,helpPoint1,NXOpen.Sect
23、ion.Mode.Create,false);日志錄制完成后,根據(jù)要求編輯日志,定義對話框讓用戶動態(tài)選擇草圖,需要刪除選擇粘性,添加支持草圖交互選擇代碼,下面是進(jìn)行草圖交互選擇代碼示例??梢园呀粨Q選擇草圖功能定義為類的靜態(tài)函數(shù)進(jìn)行調(diào)用。在當(dāng)前工作部件中實(shí)現(xiàn)動態(tài)的選擇草圖的功能,需要在程序中設(shè)置選擇范圍,可以采取以下步驟:定義選擇范圍定義選擇屏蔽3.使用SelectionManager類中的SelectObject方法選擇一個特定的對象。SelectObject的方法調(diào)用一個簡單的對話框允許選擇草圖。要實(shí)現(xiàn)用戶界面類和選擇對象屏蔽,需要包含以下命名空間。usingNXOpen.UF;usingN
24、XOpenUI;交互選擇草圖參考代碼。publicstaticSketchSelectSketch()UIui=UI.GetUI();Stringmessage=Selectsketch;Stringtitle=Selection;Selection.SelectionScopescope=Selection.SelectionScope.WorkPart;BooleankeepHighlighted=false;BooleanincludeFeatures=true;Selection.SelectionActionselectionAction=Selection.SelectionAct
25、ion.ClearAndEnableSpecific;Selection.MaskTripleselectionMask_array=newSelection.MaskTriple2;selectionMask_array0.Type=UFConstants.UF_sketch_type;selectionMask_array0.Subtype=0;selectionMask_array0.SolidBodySubtype=0;NXObjectselectedObject=null;Point3dcursor;ui.SelectionManager.SelectObject(message,t
26、itle,scope,selectionAction,includeFeatures,keepHighlighted,selectionMask_array,outselectedObject,outcursor);Sketchsketch=(Sketch)selectedObject;if(sketch=null)returnnull;returnsketch;草圖選擇的調(diào)用方法可以添加到日志開始部分。Sketchsketch1=SelectSketch();if(sketch1=null)return;錄制日志使用FindObject方法引用一個特定名字的對象。比如錄制所選的草圖對象是“S
27、KETCH(12)”。下面的代碼查找命名的對象,并應(yīng)用對象到適當(dāng)?shù)墓δ苤小?移除的代碼NXOpen.Features.Featurefeatures1=newNXOpen.Features.Feature1;sketchFeature1NXOpen.Features.SketchFeature(NXOpen.Features.SketchFeature)workPart.Features.FindObject(SKETCH(12);features10=sketchFeature1;為了實(shí)現(xiàn)草圖的交互選擇,例子中使用SelectSketch靜態(tài)函數(shù)提供用戶交互選定的草圖對象。在錄制日志中,給拉
28、伸操作中的拉伸選項添加實(shí)際曲線也是通過使用特定命名的對象來完成的。/移除的代碼Sketchsketch1=(Sketch)workPart.Sketches.FindObject(SKETCH_002);Lineline1=(Line)sketch1.FindObject(CurveLine7);日志中的選擇意圖是特征曲線,即選擇選定特征中的所有曲線。因此,需要查找草圖特征中的曲線,并用交互式選定草圖中的曲線更換FindObject()方法調(diào)用。/新增的代碼NXObjectgeoms=sketch1.GetAllGeometry();NXObjectnXObject1=geoms0;用Adds
29、ection方法中的nXObjectl替換arcl的應(yīng)用/移除的代碼section1.AddToSection(rules1,line1,nullNXObject,nullNXObject,helpPoint1,NXOpen.Section.Mode.Create,false);/新增的代碼NXObjectnullNXObject=null;section1.AddToSection(rules1,nXObject1,nullNXObject,nullNXObject,helpPoint1,Section.Mode.Create,false);2.3.3日志回放按照要求編輯日志文件后回放日志,
30、本例中回放日志要求當(dāng)前的部件必須包含一個草圖特征?;胤艜r首先選擇對話框選擇一個草圖特征。在成功選擇草圖后,依次彈出拉伸起始值和拉伸終止值對話框,在對話框的SetStartLimit和SetEndLimit輸入框中分別輸入開始值和終止值。日志回放完成后,通過選擇的草圖創(chuàng)建了一個拉伸特征,拉伸的起始位置和終止位置由用戶輸入確定。2.4日志創(chuàng)建編譯和鏈接的應(yīng)用程序編譯和鏈接的應(yīng)用程序不僅對通用API和.NET框架完全訪問,也提供了對NX的事件,NX的對話框和用戶定義對象的完全訪問。編譯應(yīng)用程序還需要作者許可,應(yīng)用程序加載過程中檢查作者許可,并運(yùn)行簽署功能。日志僅限于單個的源文件,能夠訪問大多數(shù)通用A
31、PI功能。日志不要求作者許可。日志和編譯過的應(yīng)用程序都使用運(yùn)行時基于許可檢查的特征。把日志應(yīng)用程序移到編譯和鏈接過的應(yīng)用程序通常取決于應(yīng)用程序的復(fù)雜性和效率。盡管日志和編譯鏈接的應(yīng)用程序存在很多差異,但是可以使用日志功能,對編譯鏈接的應(yīng)用程序開發(fā)起到輔助的功能,可以極大的提高編譯和鏈接的應(yīng)用程序的開發(fā)效率。2.4.1日志在編譯鏈接應(yīng)用程序中的應(yīng)用范例使用上節(jié)日志應(yīng)用程序范例QuickExtrude,使用Visualstudio創(chuàng)建拉伸位置對話框來表示拉伸的起始和終止值。步驟一、創(chuàng)建項目以VisualStudio2005為例,新建一個project,項目類型選擇VisualC#,模板選擇Clas
32、sLibrary,項目名稱為Quick_Extrude,如圖7,單擊0K后,創(chuàng)建了一個新的項目。NXOpen.Utilities.dll、NXOpenUI.dll.圖8添加.NET弓I用步驟三、添加日志錄制文件刪除項目中自動建立的Class1.cs,把日志錄制文件Extrude.cs復(fù)制到項目文件夾下,添加已存在的item,選擇Extrude.cs,見圖9。用來表示用戶輸入的拉伸操作的起始值和終止值對話框。見圖10。SolutionQuick_Extrude(1project)直連Quick_Exlrude(j-冒Properties(-uReferencesExtrude.esExtrude
33、_limits.cs嗜Extrude_limit5.Designer.es增Extrude_limits.resx圖10創(chuàng)建拉伸界面在Extrude_limits對話框中,添加4個windows控件,其中一個label空間,2個button控件和一個TextBox控件。Extrude_limits類中添加TextBox控件值的set/get方法,用于獲取或者設(shè)置拉伸值,添加label控件的set方法,用于設(shè)置當(dāng)前拉伸值標(biāo)簽。privateSystem.Windows.Forms.Labellabel_name;privateSystem.Windows.Forms.TextBoxextrude
34、_value;privateSystem.Windows.Forms.ButtonOK_button;privateSystem.Windows.Forms.ButtonCancel_button;publicstringExtrude_Valuegetreturnextrude_value.Text;setextrude_value.Text=value;publicstringLabel_Namesetlabel_name.Text=value;響應(yīng)OK控件的click事件,關(guān)閉dialog窗口。privatevoidOK_button_Click(objectsender,EventAr
35、gse)this.Close();步驟五、編輯日志文件編輯日志文件,使用Extrude_limits對話框,獲取拉伸的起始值和終止值。在Main()方法中,添加代碼,Quick_Extrude為命名空間。Quick_Extrude.Extrude_limitsextrude_dialog_start;Quick_Extrude.Extrude_limitsextrude_dialog_end;extrude_dialog_start=newQuick_Extrude.Extrude_limits();extrude_dialog_start.Label_Name=SettheStartLimi
36、t:;extrude_dialog_start.Extrude_Value=0.0;extrude_dialog_start.ShowDialog();stringstart_value=extrude_dialog_start.Extrude_Value;extrude_dialog_end=newQuick_Extrude.Extrude_limits();extrude_dialog_end.Label_Name=SettheEndLimit:;extrude_dialog_end.Extrude_Value=1.0;extrude_dialog_end.ShowDialog();str
37、ingend_value=extrude_dialog_end.Extrude_Value;以上代碼從用戶自定義的對話框中獲取了拉伸操作位置的2個值,其余部分的修改與日志應(yīng)用程序范例相同。修改完Extrude.cs后,編譯鏈接項目,生成了Extrude.dll文件。步驟六、運(yùn)行程序啟動NX7.5,選擇或者新建一個含有草圖特性的部件,在file-Execute-NXOpen或者Ctrl+u快捷命令,選擇生成的dll文件。運(yùn)行結(jié)果與日志應(yīng)用程序范例相同。2.5菜單運(yùn)行日志日志應(yīng)用程序不僅僅在日志管理器中運(yùn)行,和其他NX二次開發(fā)的應(yīng)用程序一樣,也可以通過菜單運(yùn)行。用戶只需要創(chuàng)建如圖11所示的文件夾結(jié)
38、構(gòu),設(shè)置環(huán)境變量UGII_VENDOR_DIR或者UGII_USER_DIR到指定的文件夾,在startup文件夾中放置菜單文件,腳本文件放置在application文件夾下。圖11菜單日志應(yīng)用程序結(jié)構(gòu)菜單文件my_journal.men在NX內(nèi)部操作UG_FILE_OPEN按鈕之后注冊了一個日志,該日志在當(dāng)前的顯示部件中創(chuàng)建了一個塊。菜單文件:my_journal.menVERSION120EDITUG_GATEWAY_MAIN_MENUBARAFTERUG_FILE_NEWBUTTONUG_FILE_OPENLABELOpen.ACTIONS/REPLACESTANDARDcreate_b
39、lock.csEND_OF_AFTER日志文件:create_block.cs/NX/JournalcreatedbylqzonMonOct2410:19:402011中國標(biāo)準(zhǔn)時間/usingSystem;usingNXOpen;publicclassNXJournalpublicstaticvoidMain(stringargs)SessiontheSession=Session.GetSession();PartworkPart=theSession.Parts.Work;PartdisplayPart=theSession.Parts.Display;/Menu:Insert-#Desi
40、gnFeature-#Block./NXOpen.Session.UndoMarkIdmarkId1;markId1=theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible,Start);NXOpen.Features.FeaturenullFeatures_Feature=null;if(!workPart.Preferences.Modeling.GetHistoryMode()thrownewException(CreateoreditofaFeaturewasrecordedinHistoryModebutplaybac
41、kisinHistory-FreeMode.);NXOpen.Features.BlockFeatureBuilderblockFeatureBuilder1;blockFeatureBuilder1=workPart.Features.CreateBlockFeatureBuilder(nullFeatures_Feature);blockFeatureBuilder1.BooleanOption.Type=NXOpen.GeometricUtilities.BooleanOperation.BooleanType.Create;BodytargetBodies1=newBody1;Body
42、nullBody=null;targetBodies10=nullBody;blockFeatureBuilder1.BooleanOption.SetTargetBodies(targetBodies1)theSession.SetUndoMarkName(markId1,BlockDialog);NXOpen.Session.UndoMarkIdmarkId2;markId2=theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible,Block);blockFeatureBuilder1.Type=NXOpen.Features.BlockFeatureBuilder.Types.OriginAndEdgeLengths;Pointpoint1;point1=blockFeatureBuilder1.OriginPoint;blockFeatureBuilder1.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 平法識圖技能理論考核試題及答案
- 2025年廣東省高中學(xué)業(yè)水平考試綜合測評卷(二)政治試題(含解析)
- 《四川省地下水生態(tài)環(huán)境保護(hù)規(guī)劃(2023-2025年)》
- 2024年07月湖南長沙銀行暑期實(shí)習(xí)生招考筆試歷年參考題庫附帶答案詳解
- 2024年深圳市福田區(qū)慢性病防治院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 2024年湖北省長坂坡醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 奧特曼玩具公司培訓(xùn)內(nèi)容
- 2024年刑法知識競賽題庫及答案(共80題)
- 高中信息技術(shù)粵教版必修說課稿-5.2.1 使用數(shù)據(jù)庫應(yīng)用系統(tǒng)001
- 高中信息技術(shù)人教中圖版(2019)必修2 3.4信息獲取與控制 說課稿
- 石阡縣人民醫(yī)院內(nèi)科綜合大樓建設(shè)項目環(huán)評報告
- 業(yè)主搭建陽光房申請書
- 傷口愈合的病理生理及濕性愈合理論-課件
- 消費(fèi)主義影響下中國當(dāng)代陶藝的特點(diǎn)獲獎科研報告
- 六分鐘步行試驗記錄表
- 公債學(xué)學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 中等職業(yè)學(xué)校數(shù)學(xué)學(xué)科課程標(biāo)準(zhǔn)
- 教師書法培訓(xùn)教案
- 2023年上海航天技術(shù)研究院下屬航天總廠校園招聘筆試參考題庫附帶答案詳解
- 特種設(shè)備安全管理人員(A)考試題庫
- GB/T 13871.1-2022密封元件為彈性體材料的旋轉(zhuǎn)軸唇形密封圈第1部分:尺寸和公差
評論
0/150
提交評論