找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 481|回复: 4

[ARX程序]:[ARX程序]:请问真正的高手!

[复制链接]
发表于 2005-3-31 11:25:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
怎样获取DWG图中文字的外围轮廓?在CAD2000中快捷工具下文字选项下有个文字分解功能,
但是,分解后的文字外围轮廓有多余的线,不能满足要求,请文哪为高手碰到过这样的问题?
直接用程序获取文字的外围轮廓?
   初次上来,多多指导!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-3-31 17:41:42 | 显示全部楼层
acedTextBox();
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-31 18:28:11 | 显示全部楼层
我写过的这样的程序,AcGiTextStyle 类。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-2 12:42:08 | 显示全部楼层

  1.   [FONT=courier new]
  2. int tbox()
  3. {
  4.     ads_name tname;
  5.     struct resbuf *textent, *tent;
  6.     ads_point origin, lowleft, upright, p1, p2, p3, p4;
  7.     ads_real rotatn;
  8.     char rotatstr[15];
  9.     if (acedEntSel("\nSelect text: ", tname, p1) != RTNORM) {
  10.         acdbFail("No Text entity selected\n");
  11.         return BAD;
  12.     }
  13.     textent = acdbEntGet(tname);
  14.     if (textent == NULL) {
  15.         acdbFail("Couldn't retrieve Text entity\n");
  16.         return BAD;
  17.     }

  18.     tent = entitem(textent, 10);
  19.     origin[X] = tent->resval.rpoint[X]; //ECS coordinates
  20.     origin[Y] = tent->resval.rpoint[Y];

  21.     tent = entitem(textent, 50);
  22.     rotatn = tent->resval.rreal;
  23.              // acdbAngToS() converts from radians to degrees.
  24.     if (acdbAngToS(rotatn, 0, 8, rotatstr) != RTNORM) {
  25.         acdbFail("Couldn't retrieve or convert angle\n");
  26.         acutRelRb(textent);
  27.         return BAD;
  28.     }

  29.     if (acedTextBox(textent, lowleft, upright) != RTNORM) {
  30.         acdbFail("Couldn't retrieve text box
  31.                     coordinates\n");
  32.         acutRelRb(textent);
  33.         return BAD;
  34.     }
  35.     acutRelRb(textent);

  36.         // If not currently in the WCS, at this point add
  37.         // acedTrans() calls to convert the coordinates
  38.         // retrieved from acedTextBox().

  39.     p1[X] = origin[X] + lowleft[X]; // UCS coordinates
  40.     p1[Y] = origin[Y] + lowleft[Y];

  41.     p2[X] = origin[X] + upright[X];
  42.     p2[Y] = origin[Y] + lowleft[Y];

  43.     p3[X] = origin[X] + upright[X];
  44.     p3[Y] = origin[Y] + upright[Y];

  45.     p4[X] = origin[X] + lowleft[X];
  46.     p4[Y] = origin[Y] + upright[Y];

  47.     if (acedCommand(RTSTR, "pline", RTPOINT, p1,
  48.         RTPOINT, p2, RTPOINT, p3,RTPOINT, p4, RTSTR, "c",
  49.         0) != RTNORM) {
  50.             acdbFail("Problem creating polyline\n");
  51.             return BAD;
  52.     }
  53.     if (acedCommand(RTSTR, "rotate", RTSTR, "L", RTSTR, "",
  54.         RTPOINT, origin, RTSTR, rotatstr, 0) != RTNORM) {
  55.             acdbFail("Problem rotating polyline\n");
  56.             return BAD;
  57.     }
  58.     return GOOD;
  59. }

  60.   [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-2 16:45:11 | 显示全部楼层
void Asdkmyselect()
{

ads_name sset;
ads_point p0;
AcDbObjectId objId,textstyleId;
if ( acedEntSel("select a text",sset ,p0) != RTNORM )
{
acutPrintf("\nno entity select");
return;
}

if(acdbGetObjectId(objId, sset)==Acad::eOk)
{

AcDbText *pEnt;
if(acdbOpenObject(pEnt, objId, AcDb::kForRead)==Acad::eOk)
{

AcGePoint2d p2d;
AcGiTextStyle mytextstyle;
textstyleId=pEnt->textStyle();
string mystring = pEnt->textString();
acutPrintf("\nThe position is x=%f",pEnt->position().x);
acutPrintf("\nThe position is y=%f",pEnt->position().y);
acutPrintf("\nThe aliagnpoint is x=%f",pEnt->alignmentPoint().x);
acutPrintf("\nThe aliagnpoint is y=%f",pEnt->alignmentPoint().y);

pEnt->close();
if(fromAcDbTextStyle(mytextstyle,textstyleId)!=Acad::eOk)
{
acutPrintf("open errO");
return;
}

p2d=mytextstyle.extents(mystring.data(),Adesk::kFalse,mystring.size(),Adesk::kTrue,NULL);
acutPrintf("\nthe width is%f", p2d.x);
acutPrintf("\nthe height is%f", p2d.y);
acutPrintf("\nthe big font is%s",mytextstyle.bigFontFileName());

}
}
acedSSFree(sset);
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 11:27 , Processed in 0.395406 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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