青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2303|回复: 6

[疑难] UF_MODL_create_fitted_spline求助!!急...

[复制链接]
发表于 2012-4-1 23:28 | 显示全部楼层 |阅读模式
刚学习二次开发,遇到有关散点拟合的问题,用这个函数怎么不能出结果,这个函数到底该怎么用,求高手指点!!
 楼主| 发表于 2012-4-5 12:49 | 显示全部楼层
怎么没人回复啊!!求指导!!求指导啊!!
回复 支持 反对

使用道具 举报

发表于 2012-4-5 14:13 | 显示全部楼层
你好歹得把你的源代码放上来才能看你到底错在哪里了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-4-6 23:34 | 显示全部楼层
samfkkkk 发表于 2012-4-5 14:13
7 P+ r7 v& V1 t2 R' G$ i: V6 S4 F你好歹得把你的源代码放上来才能看你到底错在哪里了

. Y& d/ q* X6 E2 }  H9 l9 e2 `哦,多谢高手关注,我贴上代码求指导!!( z& O- H- l; r, R- ^
, G8 g5 m/ [$ Q9 z+ w
#include <stdio.h>) T9 K4 U( Y& |8 B. u
#include <uf.h>* y) C2 o) E+ ^, G
#include <uf_ui.h>
( T: w, s1 H  K% y5 x#include <uf_modl.h>
1 ?- E/ v3 P  v% I7 y7 R# ^#define ptnum 5. _: I" O' o& J
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
6 J7 _4 ~( J) n/ K% w; c+ [4 W3 r% e! B+ g8 D# G" D: L
static int report_error( char *file, int line, char *call, int irc)6 l; U& j1 r" q" b( \
{- j6 `# n( ]1 V- j2 e7 ?
    if (irc)& b1 E7 l1 K9 q
    {2 s  q) R: j! T. q* f$ D7 p- I3 ~
        char err[133],: }" h! u1 R; w: a4 x
             msg[133];  t, U' j' k) M9 X
9 N6 h& i( e: e9 t
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",* Y: S4 i& J1 @
            irc, line, file);
/ m2 h" M  y7 _$ ^! x        UF_get_fail_message(irc, err);5 V7 C, n5 ^) \" T, U3 }/ Q2 D

8 \8 J# z) `# c) F" q. |  ]        UF_print_syslog(msg, FALSE);
% J0 j9 }/ i3 S$ k4 b        UF_print_syslog(err, FALSE);: }5 H5 m' F( h) q/ |8 I
        UF_print_syslog("\n", FALSE);
; T4 J" D4 r. R" r, ~% N. r        UF_print_syslog(call, FALSE);' o8 b# r8 p7 X8 s+ z
        UF_print_syslog(";\n", FALSE);( y2 c$ T1 \. n3 i8 A* [- p! h" a

' v% y2 y9 O; }% c7 C        if (!UF_UI_open_listing_window())
% p1 ^# I( f0 E2 y- C4 [2 y        {( A- u7 |  {$ z
            UF_UI_write_listing_window(msg);# P% E, `: `$ q" f, Q, ^% E6 ^$ p* z; q
            UF_UI_write_listing_window(err);  x! m) u4 V" P. s% t  P
            UF_UI_write_listing_window("\n");3 f: V; h" M' v6 c6 Q' y. t. {; a
            UF_UI_write_listing_window(call);  q. g; W' a- E1 X
            UF_UI_write_listing_window(";\n");' l/ k7 O  {$ Y; X
        }! E3 w: Y  j% b* w( [
    }
4 O0 F0 e! @- L' s& W  K) W4 M" k, O: t4 a
    return(irc);( p0 T8 k& {3 u( D. _8 y7 c( p: f
}
: V" c) `5 q' B2 P( n' b% u- {9 c5 R% c0 f

) B- ]' W. i9 g% @) Istatic void do_creat_spline()$ ^2 x! K; X& C
{% J3 E/ ?3 V0 B
        SPLINE_FIT_p_t spdata;
9 l9 ]" U( j, [( Y6 x$ V$ L! w        double sp1,7 L7 Q  Q: ?9 Y: u
                pt[3*ptnum]={1.1000,  0.5320,  2.0000,
( [# B3 |6 J3 E6 J! `4 m1 I& q                      1.5240,  0.6789,  2.3000,, K) R% ?4 u, C
                      2.0000,  0.9000,  3.5956,9 B0 R4 ~6 T! }0 X
                      2.3456,  1.3456,  3.7890,
4 M( ]! l1 Z  s' n  O) B                      3.1000,  2.4567,  3.3214};& f9 `% w& C9 `% _
        int poit,i;
$ }8 M7 |! J2 s. v2 Y$ a2 G: M        tag_p_t curve_id;
# \5 S- O# s, `* p& F* a, D/ U        spdata->degree=3;
$ t+ V# w0 l: h* P        spdata->num_of_points=ptnum;4 u0 S) h1 C: \( \# v( U* f
        spdata->num_of_segments=1;4 O5 a. V* q1 C! l, L
        for (i=0;i<ptnum;i++)
0 `- [1 }& K3 N+ |* `- s) l. ]+ }        {
0 m$ N/ h* ?( g+ y8 p/ @                spdata.points[0]=pt;
( c8 q" r9 K4 W% R                spdata.points[1]=pt[i+1];
' ?; T2 B$ I) j                spdata.points[2]=pt[i+2];
7 m8 x- w& I# [0 L  u        }
# e' ^( v! v) ?) d        UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));1 U/ T+ H6 b- G3 G. @) {, J2 Z
}
: h* k; Q6 V5 ?; v! g* e& m( @1 o, d0 g1 S
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
1 J; ?) J1 a! _. K$ \" y" P6 V{- i: c: W0 N6 J
    if( UF_CALL(UF_initialize()) ) , b* O8 l+ S" p/ W: g3 ]
    {
+ }, F4 \& K2 \3 y# o        return;/ _8 }, ]. I, V9 C
    }
! Z) E6 I, }9 l0 I, Z  c    do_creat_spline();
. C# \# M$ m: C# p$ m0 g, [, G    UF_CALL(UF_terminate());! R$ s2 a: N  i
}
+ R2 }- v& E) ^/ |" t0 s2 J* r7 F4 P9 ?  b$ v" t+ Q6 Y; b
3 u- [. c9 f9 Y6 [- ?8 G
extern int ufusr_ask_unload( void )8 e4 X* K# t3 \/ ^
{- m! E; e# j, T; p" V: J% q, |2 T
    return( UF_UNLOAD_UG_TERMINATE );
1 x# Y% d5 ^% u' r}+ Z0 }3 R+ K; p" n
8 S1 I/ a2 l1 h4 @( d
回复 支持 反对

使用道具 举报

发表于 2012-4-10 14:16 | 显示全部楼层
本帖最后由 samfkkkk 于 2012-4-10 14:45 编辑 3 H: M, a' Z& D* o0 K: q

) m! y5 p$ Z6 rdouble pt[ptnum][3]={1.1000,  0.5320,  2.0000,; @5 z% E9 h% f! _
                      1.5240,  0.6789,  2.3000,
- F1 j9 n  t2 G9 o' N                      2.0000,  0.9000,  3.5956,1 |  d. i0 B& B* w
                      2.3456,  1.3456,  3.7890,
! W# K/ P" \0 f9 i& T* t                      3.1000,  2.4567,  3.3214 };
$ L$ P& I: W7 P' o$ V  lfor (i=0;i<ptnum;i++)# i% G& |, O. }' M& U3 R
        {       h& C2 [5 `5 m$ V" [$ z# Y
         spdata->points【i*3]=pt【i] [0];: _% m) y9 r" m, ?3 R+ J2 v
         spdata->points【i*3+1]=pt【i] [1];
- |& N! g7 H/ u% _9 D% z6 v, i         spdata->points【i*3+2]=pt 【i][2];+ G, P' I4 W% m9 Y
        }$ S2 \. n4 O# g9 P; T& `2 L! l: f

* }' ?8 p) V' P% T& Z, x* v; |
& J" D: X6 v: g试试

# L: z; j$ |7 z9 ~/ H- _/ D
2 X0 u3 P6 J8 O9 q) i
1 z  q. p5 _  d: I2 ], s补充内容 (2012-4-11 08:46):: U  n' D* H  Y  ^9 c0 r  w
回家试了一下,貌似不行。。。我再想想

点评

你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。 拿你的数据做了一下,可以看看结果;(你可以把你的点整到NX,然后手工拟合,看看与我动画的曲线形状是不是一样的  详情 回复 发表于 2016-7-10 16:06

评分

参与人数 1激情 +2 G币 +10 收起 理由
victor_tech + 2 + 10 助人为乐!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2015-3-10 18:50 | 显示全部楼层
楼主该问题解决没有 我现在也是这个问题 通过点生成样条曲线 谢谢
回复 支持 反对

使用道具 举报

发表于 2016-7-10 16:06 | 显示全部楼层
samfkkkk 发表于 2012-4-10 14:16* q& d0 x. u  p0 W9 w
double pt[3]={1.1000,  0.5320,  2.0000,
% T4 T1 o$ h- k1 U                      1.5240,  0.6789,  2.3000,8 Y5 A. @& S0 B) ?* d7 J8 g8 N: Z
           ...

% z3 J" h+ H: m: V) \6 T6 }你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。
0 H1 [- I2 `; `& a 拿你的数据做了一下,可以看看结果;(你可以把你的点整到NX,然后手工拟合,看看与我动画的曲线形状是不是一样的。3 P6 `6 X/ E8 k% `% @/ j
二次开发相关的资料目前在网络上少得可怜,能找到的也是一些老的MFC在搞,那些代码:
% R2 Z5 i( }$ y$ a  r0 X. Z1、教授也是乱抄的,拿过来直接编译都是不通过的;- d' E& B! @, L# Z4 N/ ~9 z# J, s" S$ X
2、已经过时,建议不要学了;
( J! e# B  h( e8 t* ?0 ~& n3、要学就学最新版的UI界面来做二次开发。' Q3 d& \" Q; o
在整个网络上,目前能将二次开发,从入门讲解做到高级的二次开发工具做出来的教程,只有我做过。
* e9 L# @& B9 g- J- M+ }& C+ i 有兴趣关注一下:(可以看目录,还有前面的试看教程)( x9 m' N$ z. O+ ]3 Y- p: R; |  J
http://www.chuanke.com/3405460-153615.html
% S6 G/ j$ M. O+ t2 M& T. t 拟合曲线.gif 3 X+ R0 E4 y7 y( l( M0 ]
4 V% A0 S2 a) z. B4 g2 E2 d, _( A
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-22 18:49 , Processed in 0.112529 second(s), 33 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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