1
.
Disable the command line prompt
sds_resbuf
rbVarOld
,
rbVarNew
;
sds_getvar
(
"CMDECHO"
/*DNT*/
,&
rbVarOld
);
rbVarNew
=
rbVarOld
;
rbVarNew
.
resval
.
rint
=0;
sds_setvar
(
"CMDECHO"
,&
rbVarNew
);
2. 获得插入图块的名字
DWORD
tk
=::
GetTickCount
();
CString
strAnonName
;
strAnonName
.
Format
(
"*frame%d"
,
tk
);
3.建立图块
entlist
=
sds_buildlist
(
RTDXF0
,
"BLOCK"
,
2,
strAnonName
,
/* Only the '*' matters */
0 );
/* No other flags set */
4.在图块中插入一个图片
sds_resbuf
*
buf
=
sds_buildlist
(
RTSTR
,
"insert"
,
RTSTR
,
pFileName
,
RTPOINT
,
pt
,
RTREAL
,1.0,
RTREAL
,1.0,
RTREAL
,0.0,
RTNONE
);
sds_cmd
(
buf
);
sds_relrb
(
buf
);
pFileName
为插入图片的路径。
注意因为图片插入一次后,就会以
BLOCK
的形式放到
Table
中,所以应该做一个查找
sds_tblsearch
(
"block"
,
nestblockName
, 0);
//search the nest block
nestblockName
为图片的文件名,不包括后缀
若不等于
NULL,
则表示该图片已经在
Table
中了,所以只须插入
nestblockName
5
.图块的插入
status
=
sds_getinput
(
newblkname
);
if
(
status
!=
RTNORM
)
{
sds_printf
(
"Anonymous block not created/n"
);
return
RTERROR
;
}
//We have created the block, now insert it!
basept
[
X
] =
basept
[
Y
] =
basept
[
Z
] = 0.0;
entlist
=
sds_buildlist
(
RTDXF0
,
"INSERT"
,
2,
newblkname
,
/* From ads_getinput */
10,
basept
,
41,
scale
,
42,
scale
,
0 );
6.寻找实体名
status
=
sds_ssget
(
"L"
,
NULL
,
NULL
,
NULL
,
ssMove
);
“L”表上一次插入的实体
7.拖动图块
status
=
sds_draggen
(
ssMove
,
"Select insert point"
,0,
sample_fcn
,
ptDest
);
sample_fcn
为拖动方式