iCAx开思工具箱
标题:
求助,曲线的开头和结尾怎么判断?
[打印本页]
作者:
XUSIR98
时间:
2007-3-11 22:21
标题:
求助,曲线的开头和结尾怎么判断?
#include <stdio.h>
#include <stdlib.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_disp.h>
#include <uf_curve.h>
#include <uf_drf.h>
#include <uf_modl.h>
#include <uf_disp.h>
#include <uf_obj.h>
#include <uf_csys.h>
#define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
static int report( char *file, int line, char *call, int irc)
{
if (irc)
{
char messg[133];
printf("%s, line %d: %s\n", file, line, call);
(UF_get_fail_message(irc, messg)) ?
printf(" returned a %d\n", irc) :
printf(" returned error %d: %s\n", irc, messg);
}
return(irc);
}
static void do_ugopen_api(void)
{
while(true)
{
char message[]="程序 BY XXM";
char title[]="请选择曲线对象 -4MM";
int scope=UF_UI_SEL_SCOPE_NO_CHANGE;
int response;
tag_t object;
double cursor[3];
tag_t view;
UF_CALL(UF_UI_select_with_single_dialog (
message, //这里添提示栏的数据
title, //这里添对话框的数据
scope,
NULL,//初始化设置函数,可以定义类型
NULL,
&response, //按钮返回值
&object,
cursor,
&view )
);
UF_CALL(UF_CURVE_edit_length (
object,
1,
-4,
1,
UF_CURVE_NATURAL_SHAPE)
);
UF_CALL(UF_DISP_set_highlight(object,
0)
);
if(response==UF_UI_CANCEL)
{
break;
}
}
}
void ufusr(char *param, int *retcode, int param_len)
{
if (!UF_CALL(UF_initialize()))
{
do_ugopen_api();
UF_CALL(UF_terminate());
}
}
int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
上面是我写的程序,我想做一个像延伸曲线的命令,遇到一个问题,怎么判断所选曲线的开头,我只想要鼠标选的一端减少-4MM!
谢谢!
作者:
missing914
时间:
2007-3-21 17:15
给个思路,你选择这条线的时候不是有返回鼠标点吗,
通过这个点对线进行比较,判断选择点距离哪个端点最近
再去分析这个点是线的起始点还是结束点,
根据分析结果判断UF_CURVE_edit_length函数的第4各参数是
选1还是选2。
如有问题可发邮件致
derek@ugapi.com
或登陆
www.ugapi.com
发表问题。
作者:
XUSIR98
时间:
2007-3-21 22:43
谢谢了!我试一下
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3