青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2340|回复: 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 ; i6 K% m$ W, }# Q  c* f; D! W
你好歹得把你的源代码放上来才能看你到底错在哪里了

2 ?8 f3 u0 p0 L( j  f( U. ?哦,多谢高手关注,我贴上代码求指导!!
! y( k0 O  A8 a# W8 c6 C: T! N, A7 ~: ]1 L/ H
#include <stdio.h>
. l( A" j& ^, Z3 Q- e7 t; e; R#include <uf.h>
  F  [7 @4 t( j( |+ P, {#include <uf_ui.h>
+ G9 T* X! }+ R  V! f#include <uf_modl.h>/ A& z9 L6 o0 g1 x
#define ptnum 5$ Y4 U$ c$ ?2 q  X
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
* w/ J7 b: n* |& V6 O
* j5 \* x* x# ?9 _4 Dstatic int report_error( char *file, int line, char *call, int irc)
, ^9 P7 p. K4 s: L# s8 \3 b) l4 |{1 e1 d! ^; u8 q% c$ k6 {" ^
    if (irc)
2 X5 j- U" \4 H, _9 x    {
* _" a/ }$ _) i; [        char err[133],* K/ T+ c1 ~* q6 A8 @, r/ s
             msg[133];5 t" H, Q2 e0 q4 Q+ X, w1 F2 V5 ?9 p
- S  n' E( W6 _0 ^& Q3 j# a
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",; O/ J) r5 p; Z4 Y9 y6 K
            irc, line, file);: C6 g+ f/ L( D1 R) I9 F  M
        UF_get_fail_message(irc, err);1 @! x. x, g% _: f0 ~

# B& n) a. z  d3 g" W) X        UF_print_syslog(msg, FALSE);
  F# x" p* l# @        UF_print_syslog(err, FALSE);9 u$ K! `+ ^9 j- N7 e. I
        UF_print_syslog("\n", FALSE);
3 J- c; S/ C4 K7 c! J& v, a        UF_print_syslog(call, FALSE);
5 d3 ]( r4 ~6 {: }+ s        UF_print_syslog(";\n", FALSE);
7 h) C4 k$ j# @
: r% _$ ^, g6 s2 B+ Y6 x        if (!UF_UI_open_listing_window())- e0 M2 a: P& d9 T1 N; c9 W
        {
) v7 w9 n7 {9 O  @            UF_UI_write_listing_window(msg);; v7 N; u8 i" P! N
            UF_UI_write_listing_window(err);
" c$ o" Q+ }4 Z9 G3 f            UF_UI_write_listing_window("\n");
' N7 H2 N& G( i            UF_UI_write_listing_window(call);
6 ]; n$ p. K, z% o/ `/ X" u" m            UF_UI_write_listing_window(";\n");
" D% R6 k  J$ O        }
" G- y8 S2 L  }) ~2 V2 N% r    }2 B7 Q% p1 r7 y+ P
$ t: N$ I! D2 n' P
    return(irc);
. k# Z" n8 c- A: k0 @. s}: ^) F0 I$ N7 ]2 e( u% {* K: h2 y
& Q, i+ e7 m/ s% D% M, q% p

' T; D4 T/ x+ P3 N6 D/ fstatic void do_creat_spline()( l5 T/ S7 R) c& ^5 B$ F
{
8 |9 \- i+ A6 B4 G        SPLINE_FIT_p_t spdata;+ D' j" ]7 ]5 @
        double sp1,% k/ _9 M9 Z' l- @
                pt[3*ptnum]={1.1000,  0.5320,  2.0000,
0 B  p1 @5 ^; _  N8 \                      1.5240,  0.6789,  2.3000,
, l3 z3 u9 J* E* s/ v1 G                      2.0000,  0.9000,  3.5956,
+ z" c# g: b3 S$ r  b8 z, `- L                      2.3456,  1.3456,  3.7890,
) X+ a6 q. J5 s2 u; K2 R                      3.1000,  2.4567,  3.3214};
% |# n' k- g6 K* L+ }. l8 f        int poit,i;
* x5 T+ h" r2 I5 l        tag_p_t curve_id;
* N6 V6 T7 ~) h$ l. T; V4 l        spdata->degree=3;3 J9 ]+ o0 F( R
        spdata->num_of_points=ptnum;
. m0 ~( b5 \6 p- e; q        spdata->num_of_segments=1;
, @. ?2 `' D% A% ^3 z) [        for (i=0;i<ptnum;i++)
( Y) q5 W# r6 ^  h# x7 R, v% K        {' `: v/ X* p' v% W' u) o* h
                spdata.points[0]=pt;
5 S3 [6 @6 S1 R9 ]0 j& l                spdata.points[1]=pt[i+1];
! s: o! v4 w3 |' k7 x# q8 ~! z                spdata.points[2]=pt[i+2];9 X. f* b& `6 A& H; l0 N% v
        }
' @% `7 Q2 Z# W! O7 ]) c        UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));9 V) v# R# N$ ^: S4 B! e0 j" C
}* {* r# Q! T/ V( Z/ S% }" k" P: w

6 ^2 ]1 o  ^- b  Y% aextern DllExport void ufusr( char *parm, int *returnCode, int rlen )9 c* D# D8 u' R' v! J
{/ a, @+ I4 k/ R" y
    if( UF_CALL(UF_initialize()) ) : i6 z% M" V3 N* S( w6 u7 J5 X
    {" F$ ~( e4 `+ @- E# p, u; d
        return;
% X1 S! i& e1 J9 y    }, @8 ], I  v/ u
    do_creat_spline();9 Z1 D; ~% e$ {5 K
    UF_CALL(UF_terminate());/ U% Y* D, M% Y' a( F
}
! j. s0 E$ q  ^6 E. N1 L0 b: F) y; w* m+ r

  r9 ^& E. q7 k4 _5 d6 Jextern int ufusr_ask_unload( void )/ v9 D- e8 F2 \
{# a5 \2 y# y  a' n' e! `
    return( UF_UNLOAD_UG_TERMINATE );+ l. z* Y: i0 [0 G; Q0 L
}" j6 M) e! p! a8 V8 q; I6 E# X

) f; h4 m, a8 g0 Q6 x
回复 支持 反对

使用道具 举报

发表于 2012-4-10 14:16 | 显示全部楼层
本帖最后由 samfkkkk 于 2012-4-10 14:45 编辑
/ m; H# y( A5 @  Y. ]$ e/ B  u+ x! o1 E7 W# g9 o8 P$ ?' P5 X/ T, N
double pt[ptnum][3]={1.1000,  0.5320,  2.0000,/ m) h9 ^  l3 i/ @. D9 ^9 L$ a" f
                      1.5240,  0.6789,  2.3000,) t+ {& l, D3 g: G6 D* Y0 P
                      2.0000,  0.9000,  3.5956,# h& E, x- }5 [" m
                      2.3456,  1.3456,  3.7890,' ^8 R* G9 N; d4 c( [
                      3.1000,  2.4567,  3.3214 };9 a8 v1 m- d! U" m9 d) F" Y! b
for (i=0;i<ptnum;i++)
) _0 d7 O3 w! M& V4 _        {     
/ E, L& X; X3 g- Z' V         spdata->points【i*3]=pt【i] [0];* c3 r  a4 e+ a6 C( n
         spdata->points【i*3+1]=pt【i] [1];
& o. y! O% H& ^9 p         spdata->points【i*3+2]=pt 【i][2];" k, E& e& \/ T. b( K  d! G$ E
        }
) h9 k2 |" H0 v
# U& _# T; `! i. C, r) F7 U0 Q. {8 \0 |* E# c
试试

2 L! ^& a2 ?" `  f" J2 C; ]" L0 D
* v/ D$ p8 v" L! l" K2 T9 M( x
1 I% D9 h. a: X' C$ i; ^0 h0 W补充内容 (2012-4-11 08:46):
5 c) B# N8 ^' w1 R; |0 k回家试了一下,貌似不行。。。我再想想

点评

你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。 拿你的数据做了一下,可以看看结果;(你可以把你的点整到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:163 y  K. U0 w9 p& T' \
double pt[3]={1.1000,  0.5320,  2.0000,
% h. G# X, g/ H5 A8 A, R                      1.5240,  0.6789,  2.3000,
  Z  `; ~  g7 C( E- s           ...

0 e& `- H+ S0 H+ _! |' `你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。! J1 v, D0 K3 R
拿你的数据做了一下,可以看看结果;(你可以把你的点整到NX,然后手工拟合,看看与我动画的曲线形状是不是一样的。) D' i5 q6 F' t; c# }2 `+ @) K
二次开发相关的资料目前在网络上少得可怜,能找到的也是一些老的MFC在搞,那些代码:
/ W3 C" N( Z1 _8 b. [1、教授也是乱抄的,拿过来直接编译都是不通过的;
! e* c# k# G2 H7 ^! T) f, e( T' b2、已经过时,建议不要学了;; i+ L8 D# ?: B/ Q5 H- d$ G
3、要学就学最新版的UI界面来做二次开发。) S1 B; W6 v" p! t& m
在整个网络上,目前能将二次开发,从入门讲解做到高级的二次开发工具做出来的教程,只有我做过。
8 C. c9 @! O( B/ c7 v% ? 有兴趣关注一下:(可以看目录,还有前面的试看教程)
0 w$ J1 ~( q* C, y5 @http://www.chuanke.com/3405460-153615.html; Q  e( }4 }8 K: d. @* d% n
拟合曲线.gif ( |- I  V1 Y/ v* ?, O' `  d
% U& }' u% g3 N/ K: `
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-11 15:50 , Processed in 0.060384 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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