找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
打印 上一主题 下一主题

[原创] VB.NET FOR UG 二次开发 教程(附全部源码)--.NET 开发的里程碑

[复制链接]
11
发表于 2009-9-22 16:26:40 | 只看该作者
第六个例子:怎样用VB.NET在UG中选择一个体?
Option Strict Off

Imports System

Imports NXOpen
Imports NXOpen.UI
Imports NXOpen.Utilities
Imports NXOpen.UF

Module select_a_body_demo

  Dim s As Session = Session.GetSession()
  Dim ufs As UFSession = UFSession.GetUFSession()

Sub Main()
    Dim body As NXOpen.Tag

    While select_a_body(body) = Selection.Response.Ok

        MsgBox("Body Tag:" & body.ToString())

        ufs.Disp.SetHighlight(body, 0)

    End While

    End Sub

Function select_a_body(ByRef body As NXOpen.Tag) As Selection.Response

    Dim message As String
    Dim title As String = "Select a body"
    Dim scope As Integer = UFConstants.UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY
    Dim response As Integer
    Dim obj As NXOpen.Tag
    Dim view As NXOpen.Tag
    Dim cursor(2) As Double
    Dim ip As UFUi.SelInitFnT = AddressOf init_proc

    ufs.Ui.LockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)

    Try
        ufs.Ui.SelectWithSingleDialog(message, title, scope, ip, _
                     Nothing, response, body, cursor, view)
    Finally
         ufs.Ui.UnlockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)
    End Try

    If response <> UFConstants.UF_UI_OBJECT_SELECTED And _
       response <> UFConstants.UF_UI_OBJECT_SELECTED_BY_NAME Then
        Return Selection.Response.Cancel
    Else
        Return Selection.Response.Ok
    End If

    End Function

Function init_proc(ByVal select_ As IntPtr, _
                       ByVal userdata As IntPtr) As Integer

    Dim num_triples As Integer = 1
    Dim mask_triples(0) As UFUi.Mask
    mask_triples(0).object_type = UFConstants.UF_solid_type
    mask_triples(0).object_subtype = UFConstants.UF_solid_body_subtype
    mask_triples(0).solid_type = UFConstants.UF_UI_SEL_FEATURE_BODY

    ufs.Ui.SetSelMask(select_, _
                       UFUi.SelMaskAction.SelMaskClearAndEnableSpecific, _
                       num_triples, mask_triples)
    Return UFConstants.UF_UI_SEL_SUCCESS

End Function

Public Function GetUnloadOption(ByVal dummy As String) As Integer

    GetUnloadOption = UFConstants.UF_UNLOAD_IMMEDIATELY

End Function

End Module
12
发表于 2009-9-22 18:58:09 | 只看该作者
老大不愧是老大啊,高手~~
13
发表于 2009-9-22 20:07:49 | 只看该作者
再顶一下…………
14
发表于 2009-9-23 07:09:17 | 只看该作者
苏州人 发表于 2009-9-19 13:45
你说的我不是特别理解,下面按我理解的解释吧
我感觉你的结果是要做一个圆柱,然后上面有两个孔吧?

其实二次开发是按照手动建模的步骤去设计的,针对你这个问题
(1)选择三个圆,记下这三个圆的TAG
(2)用u ...


就是附图中所示的图标的对应函数,很久也没有找到

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
15
发表于 2009-9-23 14:38:52 | 只看该作者
顶你,额楼主可以上传些关于VB.NET开发的资料吗?
16
发表于 2009-9-23 14:40:37 | 只看该作者
继续支持楼主!!!
17
发表于 2009-9-23 17:42:59 | 只看该作者
楼主发的已经是VB.NET开发的资料了,最基本的程序框架已经出来了。再往下就是API函数的具体应用了。强烈支持!可惜我不是版主,否则,我将给你加N个积分
    楼主是哪里的高人?都知道真人不露面
18
发表于 2009-9-23 20:39:13 | 只看该作者
17# zhangcanwei

是的.net开发的框架已经出来了,下面发的都是一些比较实际的运用了。。
看我的ID就知道啦。。哈。。
19
发表于 2009-9-24 15:14:13 | 只看该作者
我来向楼主请教一个问题,吧,这个问题困扰了我很长时间,希望楼主能帮我解答一下。

如何用 VB.net 语言,做UG里面的 阵列?比如,我们在UG里面的 A点(100,100,0)做出一个直径为10,高度为20的圆柱体,现在我想将该圆柱体绕 Z轴 阵列 10个,请问楼主,这该怎么做啊?

如果楼主或者是 论坛里面的朋友能有任何的想法,可以加一下我的QQ:935507450,我们共同探讨UG的二次开发工作,谢谢大家!!
20
发表于 2009-9-24 15:18:16 | 只看该作者
补充一下,我知道 UG里面有阵列的命令按钮,可以实现阵列的命令。
但是现在我不想用UG自带的这个命令,我想通过UG的二次开发工作,做到破解 UG自带的阵列,也就是说,做出一个按钮,这个按钮可以实现需要的某一项功能,包括阵列。
这样,我们就不需要每一次都去点击UG下的按钮来实现需要的功能了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-31 01:52 , Processed in 0.027305 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表