青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2291|回复: 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
2 B9 V5 g) ?$ U& n2 J) Y你好歹得把你的源代码放上来才能看你到底错在哪里了
% Y: Q6 I* ?8 e& j8 @
哦,多谢高手关注,我贴上代码求指导!!
( q( D. {0 s/ P) d. a* B- `5 P5 l  C) b$ Z# _0 q; L- c% c6 u
#include <stdio.h>9 J. \. W. f' P# E( _# j
#include <uf.h>  f5 T: N  B9 p/ h5 Y
#include <uf_ui.h>. U% q6 i1 X4 T8 r2 d
#include <uf_modl.h>
& Z6 [# w) O& P/ ~, g3 x#define ptnum 5! c3 u: L' Q6 s6 I: a% A3 E
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))) T) F, ]8 Y( @" s4 C2 J- F2 n$ T8 |5 _
" y6 g4 r  D- P7 O( ~) e! o
static int report_error( char *file, int line, char *call, int irc)* P0 e' Z- T. x* a
{
4 m9 C; m1 P# A    if (irc)% N4 @( e! B& J3 k
    {
, H! _7 }" K! B; D  h" Y        char err[133],' w7 ?/ H) t2 y& b4 ?4 \0 G( e' C' S$ h
             msg[133];
2 e1 @- l. o0 F) f8 g
% }1 f" M7 ~( ?2 I8 K/ O: V& x" @; v        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",& m" G7 @" Q# o, j; Q9 B
            irc, line, file);
6 l. Z5 N( U' J8 C9 l* u2 U1 L        UF_get_fail_message(irc, err);
' F6 @! h( q2 q' A
1 S% U  n. D3 c) w" W: v        UF_print_syslog(msg, FALSE);0 p8 X) @  i2 L7 b* Z5 w" j
        UF_print_syslog(err, FALSE);3 N/ `: @' `/ `7 F+ G
        UF_print_syslog("\n", FALSE);4 g+ C  [1 M( Y% X7 v  b/ ?3 ~
        UF_print_syslog(call, FALSE);
. C* G% x7 _3 |% ^0 {$ q+ ~7 d  \7 A        UF_print_syslog(";\n", FALSE);+ P3 C8 B- ?+ G6 R& u+ w

/ w+ ^* e+ P2 p* q# `; r$ F% @        if (!UF_UI_open_listing_window())( `- v- r/ O. Y
        {0 Z5 H, W  v7 `
            UF_UI_write_listing_window(msg);' I1 g6 f1 H9 I: ?/ d
            UF_UI_write_listing_window(err);+ q* V* ^( w  b% f. o
            UF_UI_write_listing_window("\n");0 |2 o0 H- D/ E. f4 W
            UF_UI_write_listing_window(call);1 j+ q3 V4 w: T0 k" X: S5 H
            UF_UI_write_listing_window(";\n");. T0 w1 y. ]( y
        }* D6 t  X& ~# v4 }  z9 Z& q
    }
7 [3 z  k/ g0 G8 B. S7 O4 H; H4 \
  H. q: Z7 m1 _0 u/ b. [) l; j/ e! Z    return(irc);
: W5 {- b. b7 Q. V0 Y' b7 G' q1 b9 g}
5 f' r2 j9 @) m
/ H3 K4 _3 _, _) S8 \6 Q/ G: _9 S/ ?+ y/ B1 K9 q( M/ I% a% p6 m
static void do_creat_spline()" Y3 ]) `* I: v' J/ U7 `
{! y$ _3 x5 C/ o
        SPLINE_FIT_p_t spdata;) o6 A, M1 X5 i% V' q
        double sp1,9 F# O0 z( W5 F" V! `/ U  E
                pt[3*ptnum]={1.1000,  0.5320,  2.0000,
$ }/ @2 i0 @/ N& o# `0 ^                      1.5240,  0.6789,  2.3000,6 S: y. A/ g& E
                      2.0000,  0.9000,  3.5956,
% @3 [# m: B% p% T& I5 Y                      2.3456,  1.3456,  3.7890,6 P9 r4 d& {, h0 T) R
                      3.1000,  2.4567,  3.3214};9 s4 J. F: X0 n  y; g. _8 F
        int poit,i;, a5 J' W$ ^1 L5 x1 L
        tag_p_t curve_id;1 U, M- F0 [- {6 o9 t
        spdata->degree=3;
: z3 }5 H" N/ u# ~& n        spdata->num_of_points=ptnum;
) K$ |( o  ^: a        spdata->num_of_segments=1;
3 q! C# o. ]  Y6 }( @& M. k; A) C7 s2 x' R        for (i=0;i<ptnum;i++)  p+ y2 F. v; D0 r
        {- F% r, v$ K: R7 D" `
                spdata.points[0]=pt;  l* W0 A8 O; m$ e% Q
                spdata.points[1]=pt[i+1];
5 y5 |+ w/ X: Q2 V8 h                spdata.points[2]=pt[i+2];
2 \9 l5 s9 K# z        }. D% Q( Z* U4 Q; X* e* i' I
        UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));) V% b% i- ]' B3 v
}; m5 A1 i! g  D

; Y8 O5 x2 u5 n! Dextern DllExport void ufusr( char *parm, int *returnCode, int rlen )
- P0 h7 x/ \6 Q  [. ^& O0 d' D{% A% }( v& K, Y& g7 Y7 V1 L
    if( UF_CALL(UF_initialize()) )
+ {( Q: O5 W4 q# d7 L* R    {/ ~; [& n  ^  m8 f
        return;
/ [& `8 _$ |5 e9 F/ S& I, @- y    }
& T4 Y9 H& A( I1 J( M    do_creat_spline();
' G9 l1 m: i: v( U    UF_CALL(UF_terminate());. |7 {: P  c6 B4 j- ?
}
. O8 o7 Y& m3 a- e) A
4 F: V2 n0 r% m. K! t. l
6 Y1 Y0 n/ Q3 a  ]6 d  `extern int ufusr_ask_unload( void )
: B, O& Z7 x& {1 X" h{
1 Q+ @$ S1 b. T1 m$ Z' {: c/ [8 ?6 I    return( UF_UNLOAD_UG_TERMINATE );9 {0 [! A( i# U) q
}1 Z& `" G: ^/ Y" s& r' s7 o9 @
# m- D" D( @$ K) x
回复 支持 反对

使用道具 举报

发表于 2012-4-10 14:16 | 显示全部楼层
本帖最后由 samfkkkk 于 2012-4-10 14:45 编辑 7 D4 U- L& B' R  L: \2 k! `

$ ^/ X4 s4 S5 P) A1 Tdouble pt[ptnum][3]={1.1000,  0.5320,  2.0000,1 O+ n2 Y4 G: O! N( O
                      1.5240,  0.6789,  2.3000,0 ~8 m* b+ i9 K5 r& Z' A
                      2.0000,  0.9000,  3.5956,
/ V5 [4 `/ V" J6 S( ^* k+ X: ^                      2.3456,  1.3456,  3.7890,  Q, l7 {2 W8 Y& ~% O2 M; M
                      3.1000,  2.4567,  3.3214 };6 F, _. k* Y' U1 b* X" P
for (i=0;i<ptnum;i++)
: o# v* l& R1 t7 m. A8 r        {     
6 p) P5 M- ]' e$ b" d3 S         spdata->points【i*3]=pt【i] [0];+ Z$ L% S* i, Z% c" O4 s+ f( }' h+ f
         spdata->points【i*3+1]=pt【i] [1];
5 [8 B- Z, }5 n  k         spdata->points【i*3+2]=pt 【i][2];
/ p) e/ v0 L2 J/ n+ j, o        }8 l4 H$ Y8 E2 ~

4 \0 g& I1 k8 ~. ^- P- b) I! j  f' z* V* t; q3 ?
试试

& p8 @- w2 h" i& i- ]# d  |6 S( }
! j% N; f. Z3 _5 }8 h9 b& s
1 g7 h0 [  C) Y- T! @; d补充内容 (2012-4-11 08:46):
4 R- G# `6 H" W. 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
% S/ ~, d5 h7 qdouble pt[3]={1.1000,  0.5320,  2.0000,
  d; }! @9 k8 y8 @3 G                      1.5240,  0.6789,  2.3000,8 b; @) {  f; w& W% B
           ...

5 R4 O4 Z3 _( u+ `; R1 `" \7 n你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。  u8 g- m0 }# _
拿你的数据做了一下,可以看看结果;(你可以把你的点整到NX,然后手工拟合,看看与我动画的曲线形状是不是一样的。) x7 x) t5 g3 L/ I% Z% l& }
二次开发相关的资料目前在网络上少得可怜,能找到的也是一些老的MFC在搞,那些代码:% t3 h6 T) J9 q7 S. n
1、教授也是乱抄的,拿过来直接编译都是不通过的;) O, i6 D5 S' U  ~
2、已经过时,建议不要学了;
: r4 H9 R; u5 f2 }- }$ m( V3、要学就学最新版的UI界面来做二次开发。
8 {5 Y, {, D' [/ Y& ~5 R, H 在整个网络上,目前能将二次开发,从入门讲解做到高级的二次开发工具做出来的教程,只有我做过。
" {! }+ A1 X9 n7 Y 有兴趣关注一下:(可以看目录,还有前面的试看教程)
4 T) ?: v+ V8 P" B4 P2 l" lhttp://www.chuanke.com/3405460-153615.html
" H0 u8 m8 d2 g3 G, L* C 拟合曲线.gif
' e5 ?. I# e" B; v; g1 H% P- E. |
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 09:18 , Processed in 0.061363 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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