.NET下使用ufun函数取CAM操作的进给速度
UF_PARAM_ask_subobj_ptr_value,这个函数在封装的时候,给了很大一个坑啊。
NXOpen.UF.UFParam.AskSubobjPtrValue(ByVal param_tag As NXOpen.Tag,ByVal param_index As Integer,ByRef value As System.IntPtr)
如果你想使用如下的代码可以取到竟给速度,那你就错了
Dim cb As Integer = Marshal.SizeOf(GetType(NXOpen.UF.UFParam.Feedrate)) Dim ptr As IntPtr = Marshal.AllocHGlobal(cb) theUfSession.Param.AskSubobjPtrValue(oper.tag, UFConstants.UF_PARAM_FEED_CUT, ptr) Dim feed_cut As NXOpen.UF.UFParam.Feedrate = CType(Marshal.PtrToStructure(ptr, GetType(NXOpen.UF.UFParam.Feedrate)), NXOpen.UF.UFParam.Feedrate)
这个函数一直让我头疼了三年多,今天终于想到办法了
其实这里不能使用指针,而是直接使用结构体NXOpen.UF.UFParam.Feedrate
将UF_PARAM_ask_subobj_ptr_value函数重新封装定义一下:
<DllImport("libufun.dll", EntryPoint:="UF_PARAM_ask_subobj_ptr_value", CallingConvention:=CallingConvention.Cdecl, CharSet:=CharSet.Ansi)> _Friend Shared Function _AskFeedRate(ByVal param_tag As Tag, ByVal param_index As Integer, <Out> ByRef value As NXOpen.UF.UFParam.Feedrate) As IntegerEnd Function<DllImport("libufun.dll", EntryPoint:="UF_PARAM_set_subobj_ptr_value", CallingConvention:=CallingConvention.Cdecl, CharSet:=CharSet.Ansi)> _Friend Shared Function _SetFeedRate(ByVal param_tag As Tag, ByVal param_index As Integer, ByVal value As NXOpen.UF.UFParam.Feedrate) As IntegerEnd Function
整理了一下使用方法,代码如下:
Public Function AskFeedRate(ByVal param_index As Integer) As NXOpen.UF.UFParam.FeedrateDim value As NXOpen.UF.UFParam.FeedrateDim errorCode As Integer = _AskFeedRate(_camobject, param_index, value)If errorCode <> 0 ThenThrow NXOpen.NXException.Create(errorCode)End IfReturn value End FunctionPublic Sub SetFeedRate(ByVal param_index As Integer, ByVal value As NXOpen.UF.UFParam.Feedrate)Dim errorCode As Integer = _SetFeedRate(_camobject, param_index, value)If errorCode <> 0 ThenThrow NXOpen.NXException.Create(errorCode)End If End Sub
转载于:https://www.cnblogs.com/bizca/p/4964302.html
.NET下使用ufun函数取CAM操作的进给速度相关推荐
- python apply函数取数据中的后四位_python 实现rolling和apply函数的向下取值操作
我就废话不多说了,大家还是直接看代码吧! import pandas as pd def get_under_rolling(df,window,user,name): df[name] = df[u ...
- 对表型数据框进行去冗余 phe 表型信息提取 临床信息提取 自建函数提取 种方法数据框里面进行取子集操作,坐标、列名和逻辑判断每列满足某个要求每行满足某个要求按条件筛选数据库dataframe
NA 去掉删除多余的na 向量是否存在两个以及两个以上等于0的值 na NA 如何计算R中向量中大于某个值的元素数量 R如何按条件查找数据并删除符合条件的数据所在的行 判定一个向量是否包含0这个元素_ ...
- Linux下设备树中常用的of操作函数举例
文章目录 前言 一.在设备树中添加自定义节点 二.用到的of函数简介 1.用到的结构体 2.各of函数介绍 1>.of_find_node_by_path 2>.of_find_prope ...
- python反序数函数_python range()函数取反序遍历sequence的方法
python range()函数取反序遍历sequence的方法 python中的range函数取反序有两种方式 第一种:先构建一个列表,然后对列表中的元素进行反转. 例如: a=range(5) f ...
- Matlab对图像进行鼠标取点操作及K值聚类分析
这篇文章将以良乡大学城某大学附近的共享单车图进行鼠标取点操作以及对相关图像的处理,将共享单车以数据点的形式呈现,并且对数据点进行K值聚类找到最佳的中心点. 图1-1 一周的数据点位移展示图 PART ...
- (Excel)常用函数公式及操作技巧之四:文本与页面设置(一)
(Excel)常用函数公式及操作技巧之四:文本与页面设置(一) (Excel)常用函数公式及操作技巧之四: 文本与页面设置(一) --通过知识共享树立个人品牌. EXCEL中如何删除*号 在录入帐号是 ...
- python矩阵所有元素取整_Python中如何对一个数值进行取整操作呢?
摘要: 下文讲述Python中数值取整的方法分享,如下所示: 数值取整是我们处理数据常用的方法, 那么Python如何对数据进行取整操作呢? 下文将一一道来,如下所示: 实现思路: 方式1: math ...
- LINUX下Socket编程 函数格式详解
你需要了解的一些系统调用: socket() bind() connect() listen() accept() send() recv() sendto() recvfrom() close() ...
- Python 中的取余与取整操作
%: 对于正数的取余操作,跟其他的语言没有什么区别,在这里重点说一下负数的取余: print (-5%3)#输出 1#仅有一负号时,在负无穷到-5之间找到一个数能被3整数,最接近于-5的数是-6,所以 ...
最新文章
- [转]如何在保证睡眠的情况下高效学习
- 奇异值分解和图像压缩
- C++ 容器 LIST VECTOR erase
- 未在本地计算机上注册jet.oledb.4.0解决方案
- php接收get参数false是字符串,php解析url (parse_url) 参数成数组 (parse_str)
- ccs6 linux安装教程,【图片】【吧主帖】在LINUX(ubuntu)系统下装CCSv6方法(原创)【dsp吧】_百度贴吧...
- 万豪数据泄漏门再敲警钟 酒店集团7步安全建议
- linux系统安装serv u,建立第一个可用的FTP服务器
- Android 滑动菜单框架--SwipeMenuListView框架完全解析
- 位操作符:与,或,异或 狼羊菜
- CommonAPI-SomeIP 使用
- 金蝶检测服务器响应异常,连接金蝶云服务器异常 请检查
- Golang——time.Ticker定时器
- 无法打开登录所请求的数据库 。登录失败。用户*登录失败。解决办法
- mysql综训实训报告总结_实训报告总结收获.doc
- RV1126 调试记录
- Android平板能装fydeos,在 FydeOS 中如何安装安卓应用 - FydeOS 帮助手册
- day fit into much one too_2018年广东省高考英语听说考试真题A-E(附答案)
- centos7如何安装chrome浏览器?
- 简述Spring、SpringMVC、SpringBoot关系?