天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 9|回复: 0

使用AcGiTextStyle获得MTEXT的准确的宽度

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
由于使用AcDbMtext的extents()方法,只能得到MTEXT的外框,得不到字体的准确宽度,下面是用AcGiTextStyle的解决方法,得到准确的字体宽度。


HOW TO GET A TEXT STRING'S ACTUAL WIDTH
Product AUTOCAD Author LEE,HENRY
Date 26-MAR-99 Document ID 29095
Expiration date Attachments
Keywords API_R14_OK; API_TAHOE_OK; ARX

Developer Consulting Group technical solution. Autodesk confidential, for ADN members only. Please read the disclaimer

Question


We are trying to determine the actual width of the text in an AcDbMText
entity. There is an extents() function which gives the width of the bounding
box. However What I need is the length of the text itself and not its
bounding box. Many times it so happens that the bounding box is much
larger than the actual text itself. Is there a way of doing that?


Answer


Yes, there is a way but not directly from AcDbMText methods. What you said is
true so we must look else where to find an solution. It is from AcGiTextStyle
which has a method called extents(). It gives you the actual width in an
AcGePoint2d.

Here is a code snippet which demonstrates how to obtain the string width from
a user input string.

[code]
void getTextStrWidth()
{
char str[132];
int rt = acedGetString(true, "/nEnter a string: ", str);
if(rt != RTNORM)
{
acutPrintf("/nInvalid input, try again.");
return;
}

AcGiTextStyle iStyle;
AcDbTextStyleTable* pTable = NULL;
AcDbTextStyleTableRecord* pRecord = NULL;
try{
ARXOK(curDoc()->database()->getTextStyleTable(pTable,
AcDb::kForRead));
const char styleName[] = "STANDARD";
ARXOK(pTable->getAt(styleName, pRecord, AcDb::kForRead));
ARXOK(fromAcDbTextStyle(iStyle, pRecord->objectId()));
pRecord->close();
pTable->close();
}
catch(const Acad::ErrorStatus es)
{
acutPrintf("/nError: %s", acadErrorStatusText(es));
pRecord->close();
pTable->close();
}
AcGePoint2d pt = iStyle.extents(str, Adesk::kFalse, _tcslen(str),
Adesk::kTrue);
// get the width
acutPrintf("/nText string width is: /t.", pt.x);
     // get the height too
     acutPrintf("/nText string height is: /t.", pt.y);
}

//declare the following inline function in a header file
inline void ARXOK(Acad::ErrorStatus what) throw(Acad::ErrorStatus)
{
    if (what!=Acad::eOk)
     throw what;
}

[/code]
Note: You have to strip some format characters off an AcDbMText text string
which is some extra work. Otherwise, the width calculation above will not be
accurate.

To make the dimension meaningful for OUTLINETEXTMETRIC, you'll need to
translate the point from WCS to the screen pixel size using
acedCoordFromWorldToPixel().


Disclaimer

This information is derived from a response to a specific question sent to the Developer Consulting Group at Autodesk, and thus given its nature, is subject to change without notice. The information is provided to you on an "as is" basis, and you may use it only at your own risk. Autodesk is not responsible for its quality, nor shall it be liable for any damage or loss caused by your use of this information.

 

 

 

 

使用AcGiTextStyle获得MTEXT的准确的宽度

该用户从未签到

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-7-28 09:28:43 | 显示全部楼层
  法拉利膜材作为一种高性能的建筑材料,在建筑、汽车及广告等多个领域有着广泛的应用。以下是对法拉利膜材型号、特点及优点的详细分析:
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223041uiqmeujen4jjj6zv.jpg[/img]
[b]一、法拉利膜材型号[/b]
法拉利膜材有多种型号,包括但不限于以下几种:1302 S2 Flexlight Advanced:这是一种高性能IV型柔性复合膜材,以其卓越的透光性、耐久性和易维护性而受到青睐。942、1202 S2、1002 S2、902 S2、1212 S2、912 S2:这些型号同样属于法拉利膜材系列,各自具有不同的特性和适用范围,但具体特点需根据具体型号进一步分析。需要注意的是,法拉利膜材的型号可能随着产品更新换代而有所变化,具体型号及其特性请参考最新产品资料。
[img=860,1255]http://www.mjgou.com/data/attachment/forum/202403/13/223254bbblwlbvbvsbwlsl.jpg[/img]
[b]二、法拉利膜材特点[/b]
法拉利膜材的特点主要体现在以下几个方面:
1、高强度与耐用性:法拉利膜材采用高强度材料制成,具有良好的抗拉强度和撕裂强度,能够承受较大的外力作用而不易破损。耐用性强,能够在恶劣气候条件下保持稳定的性能,延长使用寿命。
2、透光性与美观性:部分型号如1302 S2 Flexlight Advanced具有高透光性,能够在保持室内光线充足的同时,提供清晰的视野。膜材表面平整光滑,色彩丰富多样,能够满足不同建筑和装饰需求,提升整体美观性。
3、轻质与灵活性:法拉利膜材重量较轻,便于运输和安装,能够降低施工成本和时间。膜材具有一定的柔韧性,能够适应各种复杂形状和结构的设计要求。
4、环保与可回收性:法拉利膜材符合环保要求,部分材料可回收利用,减少了对环境的影响。
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223128owhn0099rrds5h5y.jpg[/img]
[b]三、法拉利膜材优点[/b]
法拉利膜材的优点主要体现在以下几个方面:
1、提升建筑性能:高强度与耐用性使得法拉利膜材能够提升建筑的稳定性和安全性,延长使用寿命。透光性与美观性使得建筑内部光线充足、视野开阔,同时提升整体美观度。
2、降低施工成本:轻质特性使得运输和安装成本降低,施工效率提高。膜材的柔韧性使得施工更加灵活多变,能够适应各种复杂地形和结构要求。
3、节能环保:部分材料可回收利用,符合环保要求,减少了对环境的影响。良好的透光性能够减少室内照明需求,降低能耗。
4、广泛应用领域:
法拉利膜材不仅适用于建筑领域(如体育设施、商业设施、文化设施、交通设施等),还广泛应用于汽车及广告领域(如高档车辆贴膜保护和装饰、广告招贴等),展现出其多功能的特性。

综上所述,法拉利膜材以其高强度、耐用性、透光性、美观性、轻质灵活性以及环保可回收性等优点,在建筑、汽车及广告等多个领域发挥着重要作用。具体型号的选择应根据实际需求和应用场景进行综合考虑。
[url=http://www.mjgou.com/forum-17-1.html][size=89340][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
使用AcGiTextStyle获得MTEXT的准确的宽度

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
赛德乐膜材作为一种高性能的技术织物产品,在建筑、工业等多个领域有着广泛的应用。以下是对赛德乐膜材的详细分析:
[b]一、公司背景与实力[/b]
公司性质:赛德乐是一个家族性的跨国集团公司,总部位于奥地利,拥有多个生产基地,包括位于奥地利南部城市格拉茨的Thondorf酒店大厦,以及位于奥地利Burgenland(布尔根兰州)省Rudersdorf(鲁德斯多夫)的工厂。此外,其总部还位于德国北莱茵西伐利亚省。
市场地位:作为欧洲技术织物产品的顶级制造商,赛德乐集团已成为全球性的技术织物的主要供应商。每年向全球市场提供超过两千万平方米的织布产品。
[b]二、产品特点[/b]
高性能材料:赛德乐膜材主要采用聚酯纤维等高强度材料制成,具有良好的抗拉强度和撕裂强度。在PVDF涂层上添加了特殊的改性助剂,与PVC层内添加剂协同作用,使PVDF与PVC涂层的结合更加牢固,不易剥离。
耐候性与耐久性:具有优异的耐候性,能够抵抗紫外线、高温、低温等极端天气条件的侵蚀。耐久性能强,使用寿命长,部分产品使用寿命可达10-15年,甚至更长。
自洁性能:独特的双面PVDF涂层设计,不仅提高了膜材的自洁性能,还消除了仅有一面涂层的膜材因底面吸附灰尘而产生的工程隐患。
环保与安全性:赛德乐膜材注重环保性能,部分产品可回收再利用,符合国际环保标准。具有良好的防火性能,部分产品达到B1级防火标准。
多功能性:具有防水、防潮、防污等多种功能,广泛应用于建筑、汽车、包装等多个领域。
[b]三、产品系列与型号[/b]
赛德乐膜材拥有多个系列和型号的产品,以满足不同客户的需求。常用型号包括SD1080(II)、S1200(II)、S1000(II)、S900E、S850等。这些型号在性能上略有差异,但均具备赛德乐膜材的高性能和耐用特点。
[b]四、应用领域[/b]
赛德乐膜材广泛应用于多个领域,包括但不限于:
建筑领域:作为屋顶、墙面、遮阳篷等建筑材料,提升建筑的美观性和实用性。
体育设施:如体育场、体育馆、游泳馆等,为运动员和观众提供舒适的环境。
商业设施:商场、购物中心、酒店、餐厅等商业场所的装饰和遮阳需求。
交通设施:机场、火车站、公交车站等交通枢纽的遮阳和装饰。
[b]五、技术创新与发展[/b]
赛德乐集团一直致力于技术创新和产品研发。通过引进先进的生产设备和技术,不断提升产品的质量和性能。同时,赛德乐还注重与国内外知名科研院校、膜结构公司等进行技术交流和合作,共同推动膜材行业的发展和进步。
[b]六、总结[/b]
赛德乐膜材以其高性能、耐候性、自洁性、环保性和多功能性等特点,在建筑、体育、商业等多个领域展现出广泛的应用前景。随着技术的不断进步和市场的不断发展,赛德乐膜材将继续保持其领先地位,为客户提供更加优质的产品和服务。

 

 

 

 

使用AcGiTextStyle获得MTEXT的准确的宽度
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 10:36 , Processed in 0.158120 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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