青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2310|回复: 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
0 J* `" G+ L0 |3 l0 `4 D+ v你好歹得把你的源代码放上来才能看你到底错在哪里了

! }7 Z  b6 x, J, P* n哦,多谢高手关注,我贴上代码求指导!!
3 g6 N: t7 i8 Y. t
6 [. Y$ ~) o2 R- k" O: C#include <stdio.h>) V& r- G2 v' p" s
#include <uf.h>
, e' n, O% ^# L" R% c#include <uf_ui.h>
& O% R/ J& b& ~  W9 D, \#include <uf_modl.h>' G) M" u: @" z9 M
#define ptnum 5+ N1 K$ `# e/ ~
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))9 L8 V& r( [/ x# ]0 I
0 }& a+ G! V$ x
static int report_error( char *file, int line, char *call, int irc)
8 I; u+ B! Q6 ]+ |$ s2 d* m9 ~{
5 I+ @+ f  {9 W1 A    if (irc)
( @+ [/ M5 U- U# J    {- U7 m7 m) i9 [
        char err[133],
, M' z$ y& C* O& s; `/ K             msg[133];6 E7 o( ]/ `1 M3 F

/ u' ?- h( C" B, f( w        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
; b8 ]7 `3 g) c; Z            irc, line, file);
. I( F  ^% I4 b4 ]' P4 g4 y) @        UF_get_fail_message(irc, err);
3 W0 u4 g7 Z' H; k0 \% J
% |+ C' K0 l6 E6 J        UF_print_syslog(msg, FALSE);0 D# I4 L2 W6 l8 j' |
        UF_print_syslog(err, FALSE);3 \7 h! j# U6 s
        UF_print_syslog("\n", FALSE);+ P) N3 t6 `& o) a, x8 p
        UF_print_syslog(call, FALSE);5 ~& m, \, O6 }" B4 N3 M4 a
        UF_print_syslog(";\n", FALSE);
; I+ B+ K' _5 a% n) d7 g
  V( q4 b; v$ T: D' X/ P" F0 z        if (!UF_UI_open_listing_window())' V: B2 K% ^$ Y% E5 g
        {
! H4 P( b7 P+ ]            UF_UI_write_listing_window(msg);
  Q) \% @: p3 A/ G: @0 n            UF_UI_write_listing_window(err);6 G/ j! L5 s* j8 C! {: W/ g
            UF_UI_write_listing_window("\n");
9 r/ Y0 y( ]6 u. W% M6 f            UF_UI_write_listing_window(call);1 ~+ f# x/ }2 d6 \$ }) z
            UF_UI_write_listing_window(";\n");
" A9 R; @% [  Z3 `$ h        }3 Q5 o' O/ N- m- Q; Y, d
    }; T% L1 L3 L; E- k, T' t3 t

$ v3 l) K" p+ }+ ^" j: U    return(irc);
3 a- A( z6 s1 g4 b6 R* z$ U: N3 k& Y}4 l) d9 O  t; c$ c' I
% ]! B5 V1 P! T

7 `: l, R0 w7 d$ i0 \; hstatic void do_creat_spline()
9 Y- K( J/ Q) W) G+ e# [. D; L{1 y' J- r) _' t& L
        SPLINE_FIT_p_t spdata;
; x4 `' w! n3 d0 s% y        double sp1,
0 R# p0 ~; }$ K9 ^) R* }                pt[3*ptnum]={1.1000,  0.5320,  2.0000,3 K; J* |5 V# L
                      1.5240,  0.6789,  2.3000,
3 e; k  G- }+ \( W) ~$ N                      2.0000,  0.9000,  3.5956,
* H1 C$ S$ C& H7 u                      2.3456,  1.3456,  3.7890,0 t2 g8 b' V5 H4 A+ p+ r, ]( M
                      3.1000,  2.4567,  3.3214};% R: s) h0 s8 ]
        int poit,i;
' p1 o* I- \" M        tag_p_t curve_id;
# v  F5 j4 M1 I        spdata->degree=3;* ]% L& V# X- B% g/ @
        spdata->num_of_points=ptnum;# R) ~" B6 x6 H: T0 H) y* q* M$ S: T
        spdata->num_of_segments=1;
7 y/ L" ^0 X0 b% s, M8 j( ~        for (i=0;i<ptnum;i++)
! t! h% f4 Y! T% l4 w4 z/ b        {
% C2 ~9 z' d+ p                spdata.points[0]=pt;% g- ~, V4 r, U$ }+ X
                spdata.points[1]=pt[i+1];
. O  D; @0 [4 T3 `3 y6 i                spdata.points[2]=pt[i+2];% g9 D8 T; O5 Q; Y; R
        }
) s9 H# O* m; \0 [) }" Q2 S        UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));
+ {2 h8 H0 F3 F+ T}8 u: w  h8 V9 t2 N2 m0 U# a4 x
0 ]" b8 Q) R3 _' K
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )4 H2 O; \/ P) T, Z# P9 q; T
{
, k5 P( j% r  j0 u* F+ _8 l; v9 h    if( UF_CALL(UF_initialize()) )
$ b$ p- o$ C) u6 H, v    {/ {7 I6 G+ Z* f6 ^6 _
        return;3 `$ k  P. C8 c) W9 t" R
    }! Q5 N7 P" `- B# D
    do_creat_spline();
6 j( |& t+ v5 c8 @: j7 p    UF_CALL(UF_terminate());  u9 c, E) a4 J& P7 J
}" T+ F2 U' p" D) d% K$ N) k
$ F! _+ F' v6 t7 E* S

! L# L" \6 {/ m, F( lextern int ufusr_ask_unload( void )
* ?& v6 p! p2 e9 t" M{# W4 A/ Y# D. y9 Q1 V1 }' h1 f: K' \
    return( UF_UNLOAD_UG_TERMINATE );5 i" c/ y; R# j+ r: ^' H# `$ o
}+ A, F5 C  U: E- c; t9 p% O+ q+ A5 b
, R) V% }0 l4 p2 l+ @
回复 支持 反对

使用道具 举报

发表于 2012-4-10 14:16 | 显示全部楼层
本帖最后由 samfkkkk 于 2012-4-10 14:45 编辑 ' B% T8 H" H' L' h$ q

1 M1 S3 v' O7 G, W( gdouble pt[ptnum][3]={1.1000,  0.5320,  2.0000,
' y3 J# U4 Z$ V4 z, ^5 O4 V0 R                      1.5240,  0.6789,  2.3000,, @7 C* r9 x  b' O! m2 |: U( h0 t
                      2.0000,  0.9000,  3.5956,. b4 w' Y/ i9 z0 s4 G+ B7 A
                      2.3456,  1.3456,  3.7890,$ ~& n0 ~3 S6 }: c7 i- @/ c
                      3.1000,  2.4567,  3.3214 };$ o0 z, Q3 H1 M& r8 G( |
for (i=0;i<ptnum;i++)
, {# t0 w) }: w9 T        {     / j+ ~5 C$ J6 }/ }& L
         spdata->points【i*3]=pt【i] [0];
3 J+ O3 I: U/ V; Q8 L$ u) g+ E         spdata->points【i*3+1]=pt【i] [1];
4 }: Y; S( m9 k: ^1 l+ Y         spdata->points【i*3+2]=pt 【i][2];
5 I( `9 P& Q: Y9 ]) c* ?        }
! {/ }: X8 Q; i  W* v* D
6 P: g- U+ f6 m
) o* ]7 v7 N/ M2 F9 {; g试试
/ |9 r8 z" R: F- W* w& J. |6 V9 V
2 v# b7 E( z% C( w

& R1 {7 p8 y0 M, S  A2 H补充内容 (2012-4-11 08:46):! Y3 j5 F- Q5 a" m6 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" c  s1 z' z- B+ z: ^
double pt[3]={1.1000,  0.5320,  2.0000,
2 D, P6 p) a5 }2 c                      1.5240,  0.6789,  2.3000,
2 h  h2 I( g, p8 W) d           ...

+ |5 s# v# @) h( O6 D% a你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。
/ u" X7 ^; @3 n! u 拿你的数据做了一下,可以看看结果;(你可以把你的点整到NX,然后手工拟合,看看与我动画的曲线形状是不是一样的。8 r9 U. h! I3 j3 N6 I
二次开发相关的资料目前在网络上少得可怜,能找到的也是一些老的MFC在搞,那些代码:
* s: O, h1 I) x. s# |$ T( z1、教授也是乱抄的,拿过来直接编译都是不通过的;
4 z+ Y4 x0 K8 q2、已经过时,建议不要学了;
5 f8 u  \# U) [3、要学就学最新版的UI界面来做二次开发。
7 a9 C0 k9 m4 ]* n/ |6 q0 h 在整个网络上,目前能将二次开发,从入门讲解做到高级的二次开发工具做出来的教程,只有我做过。
1 @3 C$ t8 o' _. P 有兴趣关注一下:(可以看目录,还有前面的试看教程)
& ?0 C/ C; o+ {http://www.chuanke.com/3405460-153615.html$ c9 I4 t9 P* V) @7 {
拟合曲线.gif ' V- B& |  z. s- X+ a7 l1 U2 W

8 T/ P" b: q3 G; K* `( w; m% _
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 06:53 , Processed in 0.050913 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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