- 自動編程
- 自動出圖
- 設(shè)計(jì)建模
- UG/NX
【技術(shù)分享】【C#】用戶自定義控件

琛
帖子
14
14
精華
1
1
積分
154
154
二次開發(fā)
技術(shù)分享
1.在一些特定場景下,需要使用多個(gè)Ui組成構(gòu)成一個(gè)Ui塊來使用,下圖紅框內(nèi)部包含三個(gè)Ui,共同組成一個(gè)單元,如果使用UG控件一個(gè)一個(gè)放置,位置定義與管理將非常復(fù)雜,這時(shí),使用用戶定義的Ui塊可以方便的解決此場景。
2.首先在Ui編輯器內(nèi)創(chuàng)建單個(gè)單元,修改類型為用戶定義的Ui塊。
3.注冊用戶定義的Ui塊,代碼如下,其他代碼可以使用UI編輯器生成的代碼模板。
internal static F3DBodiesHoleParameter RegisterUserDefinedUiBlock(NXOpen.BlockStyler.BlockDialog parentDialog, string blockId)
{
F3DBodiesHoleParameter theF3DFtBasicDisplay = new F3DBodiesHoleParameter();
parentDialog.RegisterUserDefinedUIBlock(theF3DFtBasicDisplay.theUserDefinedUIBlock, blockId);
return theF3DFtBasicDisplay;
}
4.添加自定義控件到新菜單,需要在程序內(nèi)新建對應(yīng)菜單控件的代碼,此處和正常功能開發(fā)一樣,使用程序打開NX后,可以在Ui編輯器看到用戶定義的UI塊。
5.之后就可以和正常Ui一樣添加了
6.自定義控件在功能菜單內(nèi)注冊。
private F3DBodiesHoleParameter f3DBodiesHoleParameter00;
internal void initialize_cb()
{
try
{
f3DBodiesHoleParameter00 = F3DBodiesHoleParameter.RegisterUserDefinedUiBlock(this.Dialog, "f3DBodiesHoleParameter00");
}
catch (Exception ex)
{
theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
}
}
7.自定義控件數(shù)據(jù)的讀寫,代碼寫在用戶定義的Ui塊的類內(nèi)。
internal int Color
{
get { return colorPicker0.Value.FirstOrDefault(); }
set { colorPicker0.Value = new int[] { value }; }
}
internal double Value
{
get { return double0.Value; }
set { double0.Value = value; }
}
internal int Layer { get; set; }
internal Body[] Bodies
{
get { return bodySelect0.SelectedObjects.OfType<Body>().ToArray(); }
set { bodySelect0.SelectedObjects = value; }
}
登錄論壇用戶后可查看全部內(nèi)容
855
0
2024-01-19 16:47:36
by f3dexpress Nico
請選擇移動至版塊:
確認(rèn)移動
回復(fù)加入討論