青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2939|回复: 3

[疑难] 二次开发在使用API调用GRIP时的问题

[复制链接]
发表于 2011-11-11 19:52 | 显示全部楼层 |阅读模式
       我学习了API参数化后,想利用GRIP直接建模,现在初步了解GRIP了,今天在做一个书上的“参数化直齿轮”的例子时。在自定义的目录下已经建好了startup 、application、grip 文件夹 生成直齿轮的GRIP程序已经编译连接好放到grip 文件夹里了,接着按书上的做法我用ug向导建立工程,把UIStyler建立的对话框C程序和头文件都拷贝到该工程的目录下,并添加到此工程中,然后再编写完下面程序时(完全按照书上的例子程序),无法生成DLL文件,有大约几十个错误 我看了一下 基本都出在 调用GRIP的语句出。大致分为这几种错误,
- s9 ~4 O0 R+ A1 C" SCompiling..., L# S+ _% B1 F! x
inner_gear.cpp
- [( t6 l3 ?, V5 c* MD:\inner_gear\inner_gear\inner_gear.cpp(464) : error C2065: 'write_para' : undeclared identifier
3 ]3 }! K. [8 W* \6 DD:\inner_gear\inner_gear\inner_gear.cpp(481) : error C2065: 'data' : undeclared identifier
: Q5 T/ j4 ~  N5 @- _! \( W% n9 [D:\inner_gear\inner_gear\inner_gear.cpp(481) : error C2109: subscript requires array or pointer type) n% h+ E9 M0 X+ h" u' l* k/ r
D:\inner_gear\inner_gear\inner_gear.cpp(481) : error C2228: left of '.value' must have class/struct/union type  A+ D2 f0 K3 q  [; F5 ^5 q
D:\inner_gear\inner_gear\inner_gear.cpp(481) : error C2228: left of '.real' must have class/struct/union type
. l! R2 Z: l8 U    .$ t; c) S8 U7 t/ x- R- A
    ." z% c5 i& `1 h* e# A
    .3 x" \( e6 r% N' c) G8 [* d8 b1 @
D:\inner_gear\inner_gear\inner_gear.cpp(586) : error C2102: '&' requires l-value
6 `& N5 H; c3 ?( A# G: I% P5 o3 j* I也许学习过GRIP和API联合参数化的朋友都做过这个参数化直齿轮的例子,下面是API中调用GRIP的一段程序,错误基本全出在这+ s, C3 n0 H* ~" c& T, j8 `$ T7 O5 N
int i; 2 Q" [8 \$ l0 U% w3 n- e' y9 U
     write_para(dialog_id);
3 P# A4 R6 H( X& o  const char env[255]="UGII_USER_DIR";4 B. k6 a5 w# Y  O) g- h- N
  char *basedir=NULL;9 l  o" [- I; ]/ `8 b1 W/ x
  basedir=getenv(env);
6 x* B6 M% u# ~5 }* g8 E7 h  - T8 v+ w  J: G' U2 Y
  char dir[100];; _, G! h/ H1 I) Q, O
  strcpy(dir,basedir);
2 M3 |# `( d: \5 I' L1 [( V  strcat(dir,"\\grip\\inner_gear.grx");5 |( y; o: T/ ]! X+ g9 r
    , A, [$ c1 l  m7 t
  char *grip_exe=dir;
/ E5 h; }- F* X- i% _# T4 H  int status;9 W7 @9 S+ [5 t% S( b
  int grip_arg_count=7;
5 v* J6 z2 R" g; ~* n' k$ t0 B     UF_args_t grip_arg_list[7];: r# m/ R5 C: \. C; b
  for(int j=0;j<7;j++); H% N9 F$ Y$ F; Y( ]5 L: C
  {+ a" y, p% M. z5 ]3 I# {
   if(fabs(data[j].value.real)==0.0)
( ^# b8 ?( a* |) m; _2 O! Y   {: r" O' S- Z3 L  O% R  k
    uc1601("输入数据不能为零",1);
# c( `# @  H$ v7 W    return ( UF_UI_CB_CONTINUE_DIALOG );5 G, K+ `8 F, \
   }
8 W+ N0 u+ F  H! ~' e8 }  }) i2 j2 q/ h1 o" W+ T
     grip_arg_list[0].type=UF_TYPE_DOUBLE;: e% C- l/ ^8 \5 H5 n1 I" t
     grip_arg_list[0].length=0;2 J- y  x& L( z6 [( ]' V, \9 F& \
     grip_arg_list[0].address=&data[0].value.real;
( R0 t% |6 s! \$ z1 ~) ]  grip_arg_list[1].type=UF_TYPE_DOUBLE;
, a2 i7 F9 s4 g     grip_arg_list[1].length=0;
! H7 [3 m) W& ~5 F     grip_arg_list[1].address=&data[1].value.real;
4 J: \( y' v: H* ?( m  U: @  grip_arg_list[2].type=UF_TYPE_DOUBLE;- Y  I' D8 a& l( H+ E/ h5 U  s
     grip_arg_list[2].length=0;% h$ M5 F$ v& E
  double fdat=data[2].value.integer;
( |: r( U0 u8 S' E: m3 E     grip_arg_list[2].address=&fdat;
( J$ ~9 T( J$ n  
8 {% m# {" t- i; w6 _, x9 Y  M9 ]  for(i=3;i<7;i++)3 d& O  E3 T% H0 e$ ~3 n
  {
$ X9 t+ s% b1 w+ J4 H  grip_arg_list.type=UF_TYPE_DOUBLE;; c$ O; j1 b: A' Q3 h) F, O
        grip_arg_list.length=0;
. r" \% H$ K8 Q9 c  t( J        grip_arg_list.address=&data.value.real;, \9 B$ ]0 H0 G; d$ T
  }4 |/ h1 x# Y, B7 v3 D% X& A* q
      
" ?) e, h3 Y9 i     status=UF_call_grip(grip_exe,grip_arg_count,grip_arg_list);
9 L8 S0 x3 L9 v
. v3 C. D1 B3 ~/ W  @为什么出现这种情况 我把书上的程序编译一下 可以生成DLL文件 对比一下 是他在新建工程时,FileView里多一个“External Dependancies“ 的 文件,如下。请问是这里导致的问题吗?请高手一定帮帮!万分感谢!!!!
7 r* i3 Y/ `& X3 Z6 @0 a$ E LGEAT16P}S$B}W]02938HLC.jpg ) B7 i+ I; J( a

: q$ Y9 w' T2 D: G
 楼主| 发表于 2011-11-11 22:38 | 显示全部楼层
本人已经解决 不过还是希望有高手可以指点关于API调用GRIP相关的问题,比如在GRIP中友CHOOSE语句打开对话框 却打不开的问题!
回复 支持 反对

使用道具 举报

发表于 2013-11-27 16:12 | 显示全部楼层
您好!!我现在也在做API调用GRIP的课题,您也知道,这部分的资料比较少,都要自己研究,会遇到很多困难,我现在就遇到了个问题,就是.dll文件都已经弄好了,如图,但是我grip程序写了一部分,不知道问什么我点确定之后,就像是没有这个函数一样没有反应,您知道是什么原因吗,求指导
ug.jpg
回复 支持 反对

使用道具 举报

发表于 2015-6-14 12:01 | 显示全部楼层
jinxi_19891228 发表于 2013-11-27 16:12
- [" F% v# J0 N9 Q# K! F1 k7 E**** 作者被禁止或删除 内容自动屏蔽 ****

$ r. u8 y# I& j您好!请问您的问题解决了吗?我也出现了同样的问题,想请教
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-7-19 06:59 , Processed in 0.174598 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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