- UID
- 124967
- 积分
- 180
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-4-14
- 最后登录
- 1970-1-1
|
发表于 2005-4-2 12:42:08
|
显示全部楼层
- [FONT=courier new]
- int tbox()
- {
- ads_name tname;
- struct resbuf *textent, *tent;
- ads_point origin, lowleft, upright, p1, p2, p3, p4;
- ads_real rotatn;
- char rotatstr[15];
- if (acedEntSel("\nSelect text: ", tname, p1) != RTNORM) {
- acdbFail("No Text entity selected\n");
- return BAD;
- }
- textent = acdbEntGet(tname);
- if (textent == NULL) {
- acdbFail("Couldn't retrieve Text entity\n");
- return BAD;
- }
- tent = entitem(textent, 10);
- origin[X] = tent->resval.rpoint[X]; //ECS coordinates
- origin[Y] = tent->resval.rpoint[Y];
- tent = entitem(textent, 50);
- rotatn = tent->resval.rreal;
- // acdbAngToS() converts from radians to degrees.
- if (acdbAngToS(rotatn, 0, 8, rotatstr) != RTNORM) {
- acdbFail("Couldn't retrieve or convert angle\n");
- acutRelRb(textent);
- return BAD;
- }
- if (acedTextBox(textent, lowleft, upright) != RTNORM) {
- acdbFail("Couldn't retrieve text box
- coordinates\n");
- acutRelRb(textent);
- return BAD;
- }
- acutRelRb(textent);
- // If not currently in the WCS, at this point add
- // acedTrans() calls to convert the coordinates
- // retrieved from acedTextBox().
- p1[X] = origin[X] + lowleft[X]; // UCS coordinates
- p1[Y] = origin[Y] + lowleft[Y];
- p2[X] = origin[X] + upright[X];
- p2[Y] = origin[Y] + lowleft[Y];
- p3[X] = origin[X] + upright[X];
- p3[Y] = origin[Y] + upright[Y];
- p4[X] = origin[X] + lowleft[X];
- p4[Y] = origin[Y] + upright[Y];
- if (acedCommand(RTSTR, "pline", RTPOINT, p1,
- RTPOINT, p2, RTPOINT, p3,RTPOINT, p4, RTSTR, "c",
- 0) != RTNORM) {
- acdbFail("Problem creating polyline\n");
- return BAD;
- }
- if (acedCommand(RTSTR, "rotate", RTSTR, "L", RTSTR, "",
- RTPOINT, origin, RTSTR, rotatstr, 0) != RTNORM) {
- acdbFail("Problem rotating polyline\n");
- return BAD;
- }
- return GOOD;
- }
- [/FONT]
复制代码 |
|