iCAx开思网

标题: journal录制不到该怎么办? [打印本页]

作者: zhangxinyuan    时间: 2009-2-9 10:18
标题: journal录制不到该怎么办?
用vb.net做二次开发,录制操作journal,很多操作录不到,有什么办法可以快速的找自己想要实现的操作的函数呢?
在帮助那里搜索,好像会搜出很多关键字,都不知道那个是自己需要的,怎么用也没介绍。
作者: zhangcanwei    时间: 2009-2-9 12:34
如果录不到,就慢慢地在帮助中找吧。时间长了,就会发现一些规律。这方面的资料很缺。
作者: tangxu12    时间: 2009-2-10 20:14
可能你点击的命令 不是NX本省的命令 是你自己定义的吧
作者: tealy    时间: 2009-2-21 17:06
journal录制不到绝大部分是因为NX没有开放这部分函数,我的做法是OLLYDBG跟踪后看他调用哪个函数,然后自己包装使用,该方法只在NX4上可以,NX5,6有防调试功能,一跟踪NX5,6就自动关闭无法跟踪。 举例NX6.net中检查干涉的函数有BUG,跟踪后发现是libpartutils.dll中?pxintf@@YAXPAI0PAH11111@Z实现其功能,自己包装:
//检查
[DllImport("libpartutils.dll", EntryPoint="?pxintf@@YAXPAI0PAH11111@Z", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)] internal static extern void _DoCheck(ref Tag a, ref Tag b, ref int c, ref int d, ref int e, ref int f, ref int g, ref int h);

//获取面
[DllImport("libdman.dll", EntryPoint="[email=?KI_gtinli@@YAHHHHPAH@Z]?KI_gtinli@@YAHHHHPAH@Z[/email]", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
  internal static extern void _GetFace(int a,int b,int c,ref Tag d);

//释放资源
[DllImport("libdman.dll", EntryPoint="[email=?KI_delent@@YAHH@Z]?KI_delent@@YAHH@Z[/email]", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
  internal static extern void _FreeHandle(int a);

[ 本帖最后由 tealy 于 2009-2-21 17:09 编辑 ]
作者: tealy    时间: 2009-2-21 17:07
下面形式调用:
  private int DoCheck(Tag body1,Tag body2,ref int handle1,ref int handle2)
  {
   int unknow1 = 1, unknow2 = 1;
   //1,1 face type all pairs
   //1,0 face type one pares
   //2,0 create solid;
   int unknow3 = 1;//maybe the created solid's tag;
   int counter = 0;
      JAM.StartUFCall();
      _DoCheck(ref body1,ref body2,ref unknow1,ref unknow2,ref handle1,ref handle2,ref counter,ref unknow3);
      JAM.EndUFCall();
      return counter;
  }

[ 本帖最后由 tealy 于 2009-2-21 17:08 编辑 ]
作者: zhangcanwei    时间: 2009-2-21 18:13
楼上是高手。我只能是根据NX中的英文单词,去帮助中搜索




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3