几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » DirectDWG
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-05-05, 09:28 AM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】entity and material

entity and material
entity and material
hello,
i am trying to find the entity materials in order to get the entity textures.
as i have read, there is 2 cases, according to the version of the dwg file (<= 2006 and >= 2007).
1- i would like to have some advices concerning the acad<=2006 materials, there is no samples using them (i think),
2- for all the entities of a acad>=2007 file, i get a material. if the entity has in fact no material, the gotten material name is "bylayer" (dwg_entity->material()), and if the entity has an actual material (galvanized steel, for example) i got the exact material name. is there is a way to distinguish these two kinds of material ("bylayer" materials and actual materials)?
thank you very very much for your help
guilhem
i have the code:
code:
/* i is the blocktableiterrator */
oddbentityptr dwg_entity = i->objectid().safeopenobject()
/* autocad <= 2006 materials */
odresbufptr ave_material_res = dwg_entity->xdata (dd_t("ave_entity_material"));
if (! ave_material_res.isnull()) {
/* something to do here */
}

/* autocad >= 2007 materials */
oddbmaterialptr dwg_material = dwg_entity->materialid().safeopenobject();
if (! dwg_material.isnull()) {
/* something to do here */
}
1. sample using ave materials is odaveex
2. newly created ac2007+ drawing contains 3 "special" materials: bylayer, byblock and global.
by default entities are created with bylayer material (like bylayer line type).
oddbdatabase has functions
bylayermaterialid(), byblockmaterialid(), globalmaterialid()
sergey slezkin
hello sergey,
thank very much for your reply.
just one thing: what is the priority of the materials (does bylayer materials override the byblock materials) ?
guilhem
byblock and bylayer materials work exactly the same as other properties (line type, line weight, color..)
what do you mean by overriding? entity can have bylayer or byblock material but not both ...
sergey slezkin
sergey,
ok, an entity can only have one material...
but does:
oddbmaterialptr dwg_material = dwg_entity->materialid().safeopenobject();
provides one of three kinds of materials (layer, block, global) ?
many thanks again!
guilhem
it provides the material entity has. it may be bylayer, byblock, global, or any other existing in material dictionary.
for old drawings material dictionary may be empty and entity may have null material id.
sergey slezkin
ok, fine!
thank you sergey
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭

相似的主题
主题 主题发起者 论坛 回复 最后发表
【转帖】material not being supplied with certs - general market tren yang686526 American standards 0 2009-04-29 08:46 PM
【转帖】material callouts yang686526 American standards 0 2009-04-29 08:46 PM
【转帖】asme美国机械工程师标准目录2 huangyhg American standards 5 2009-04-26 02:38 PM
【转帖】using material physical properties in equations yang686526 SolidWorks二次开发 0 2009-04-13 03:10 PM
【转帖】photoworks material help yang686526 SolidWorks二次开发 0 2009-04-13 01:27 PM


所有的时间均为北京时间。 现在的时间是 10:01 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多