天气与日历 切换到窄版

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

曲线] 从 AcDbPolyline 派生遇到的问题

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
AcDb: deriving from AcDbPolyline

问题:

Deriving from AcDbPolyline works correctly, however, it seems DWG files
containing instances of my custom entity derived from AcDbPolyline do not
contain proxy graphic information for them. Why?

解答:

AutoCAD does not save the proxy graphic information for classes derived from
AcDbPolyline. The reason for this is that the 'saveAs()' method is implemented
as follows:

普通浏览复制代码

void AcDbPolyline::saveAs(AcGiWorldDraw* mode, AcDb::SaveType st) {
    assertReadEnabled();

    if ( st == AcDb::kR12Save )
        // ... do something to convert into AcDb2dPolyline
}


Whereas it should be as follows:

普通浏览复制代码
void AcDbPolyline::saveAs(AcGiWorldDraw* mode, AcDb::SaveType st) {
    assertReadEnabled();

    if ( st == AcDb::kR12Save )
        // ... do something to convert into AcDb2dPolyline
    else
        worldDraw (mode) ;
}


As a result, proxy graphic data is never saved, which causes your derived
AcDbPolyline entity to be invisible if your DBX-object enabler application is
not loaded. Although this is not ideal, it does not affect any other behavior or
functionality of your custom entity.

A simple override of the 'saveAs()' method can solve this problem as follows:

普通浏览复制代码

void AcDbMyPolyline::saveAs(AcGiWorldDraw* mode, AcDb::SaveType st) {
    assertReadEnabled();

    if ( st == AcDb::kR12Save )
        AcDbPolyline::saveAs (mode, st) ;
    else
        worldDraw (mode) ;
}


This would be the correct solution, however there is another known problem in
AutoCAD that prevents the 'saveAs()' method from being called for proxy graphic
generation. This second problem is more serious because it prevents 'saveAs()'
method being called. The reason for this is that AutoCAD makes an exception in
the case of an AcDbPolyline entity. Instead of asking 'are you an AcDbPolyline
class?', AutoCAD asks 'Are you a "kind of" AcDbPolyline?' This also includes any
of your derived classes from AcDbPolyline.

The only solution is to pretend your custom AcDbPolyline entity is not an
AcDbPolyline class, even if it really is. This will cause AutoCAD to properly
call the 'saveAs()' method and then your implementation of the 'worldDraw()'
method for your custom entity. In order to pretend that it is not an
AcDbPolyline entity, just implement the 'ACRX_DXF_DEFINE_MEMBERS' ARX macro as
follows:
普通浏览复制代码

ACRX_DXF_DEFINE_MEMBERS(AcDbMyPolyline, AcDbCurve,
AcDb::kDHL_CURRENT, AcDb::kMReleaseCurrent,
AcDbProxyEntity::kNoOperation,
ACDBMYPOLYLINE, ACDBMYAPP
);



There are other requirements in the implemention of the 'worldDraw()' method:
you should not call AcDbPolyline::worldDraw() when called from the 'saveAs()'
method because this would cause the same problem that was outlined previously.
(AutoCAD filters out all AcDbPolyline calls in that context). An 'unhandled
exception error' will occur as a result. (rememeber we are pretending not to be
an AcDbPolyline entity). To solve the problem, you need to modify the 'saveAs()'
method like this:

普通浏览复制代码
bool mbDrawWithExplode = false ;

void AcDbMyPolyline::saveAs(AcGiWorldDraw* mode, AcDb::SaveType st) {
    assertReadEnabled();

    if ( st == AcDb::kR12Save ) {
        AcDbPolyline::saveAs (mode, st) ;
    } else {
        mbDrawWithExplode = true ;
        worldDraw (mode) ;
        mbDrawWithExplode = false ;
    }
}
Implement your 'worldDraw()' method like this:


Adesk::Boolean AsdkOPLine::worldDraw(AcGiWorldDraw* mode)
{
    assertReadEnabled();

    if ( !mbDrawWithExplode ) {
        bPEdit =true ;
        if ( AcDbPolyline::worldDraw (mode) != Adesk::kTrue ) {
            bPEdit =false ;
            return (Adesk::kFalse) ;
        }
        bPEdit =false ;
    } else {
        AcDbVoidPtrArray ents ;
        AcDbPolyline::explode (ents) ;
        for ( int j =ents.length () - 1 ; j >= 0 ; j-- ) {
            ((AcDbEntity *)ents.at (j))->worldDraw (mode) ;
            delete (AcDbEntity *)ents.at (j) ;
        }
        ents.setLogicalLength (0) ;
    }
    return (Adesk::kTrue) ;
}

 

 

 

 

曲线] 从 AcDbPolyline 派生遇到的问题

该用户从未签到

主题

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=6913][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
曲线] 从 AcDbPolyline 派生遇到的问题

该用户从未签到

主题

0

回帖

16

积分

新手上路

积分
16
发表于 2024-8-6 10:42:43 | 显示全部楼层
耐弛膜材,具有高性能、耐候性、耐久性等特性的膜材品牌或产品系列。以下是对这类膜材的详细介绍:
[b]一、品牌与类型[/b]
品牌:虽然直接以“耐弛”命名的品牌信息不明确,但我们可以将其视为一种高性能膜材的代表。
类型:耐弛膜材可能包括PVC膜材、PVDF膜材以及PTFE膜材等多种类型,这些材料在膜结构建筑、污水处理、空气净化等领域有广泛应用。
[b]二、产品特点[/b]
耐候性:耐弛膜材通常具有优异的耐候性,能够抵抗紫外线、高温、低温等极端天气条件的侵蚀,保持长久的色彩鲜艳和材料性能。
耐久性:材料强度高,抗拉、撕裂性能优异,能够承受各种外力的作用,延长使用寿命。
自洁性:部分耐弛膜材表面经过特殊处理,具有自洁功能,能够减少灰尘和污染物的附着,降低清洁成本。
化学稳定性:耐化学腐蚀性强,能够抵抗多种化学物质的侵蚀,保持材料的稳定性和功能性。
环保性:部分耐弛膜材为可回收材料,符合环保要求,有助于减少建筑垃圾和环境污染。
[b]三、应用领域[/b]
耐弛膜材广泛应用于多个领域,包括但不限于:
建筑领域:作为膜结构建筑的主要材料,用于体育场馆、展览馆、商业设施等建筑的屋顶和墙面覆盖。
污水处理:在污水处理厂中作为污水膜材使用,能够有效去除水中的悬浮物、有机物等污染物。
空气净化:在空气净化设备和系统中作为滤材使用,具有高效的过滤性能和耐化学性。
其他领域:如交通设施(如高速公路隔音屏)、工业设施(如化工厂、制药厂的防腐蚀覆盖材料)等。
[b]四、品牌合作与研发[/b]
耐弛膜材的生产商通常与国内外知名科研院校、膜结构公司等建立紧密的合作关系,进行技术交流、合作及成果交换。通过引进先进的生产设备和技术,不断提升产品的质量和性能。同时,生产商还注重产品的研发和创新,不断推出适应市场需求的新产品。
[b]五、总结[/b]
耐弛膜材作为一类高性能膜材的代表,以其优异的耐候性、耐久性、自洁性和化学稳定性等特点在多个领域得到广泛应用。随着技术的不断进步和市场的不断发展,耐弛膜材的产品种类和应用领域还将不断拓展和完善。然而,需要注意的是,由于“耐弛”并非一个明确的品牌名称,因此在实际应用中需要根据具体的产品信息和品牌标识进行选择。

 

 

 

 

曲线] 从 AcDbPolyline 派生遇到的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-1 15:19 , Processed in 0.196669 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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