天气与日历 切换到窄版

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

arx 代码

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
  1. /* this draws the btr */
  2. void AuStEntity::asDrawBtr(
  3.         AcGiCommonDraw                *giDraw,
  4.         AcDbObjectId                &oIdBtr,
  5.         AcDbObjectId                &oIdLayer,
  6.         Adesk::UInt16                &iEntityColor,
  7.         AcDb::LineWeight        *lwObject,
  8.         AcCmTransparency        &transp,
  9.         AcGeMatrix3d                &transMat,
  10.         AcGiWorldDraw                *pWd /* = nullptr */
  11. )
  12. {
  13.         /* do nothing */
  14.         if (oIdBtr == AcDbHardPointerId::kNull)
  15.                 return;

  16.         /* open btr for read */
  17.         AcDbBlockTableRecordPointer pBTR = nullptr;
  18.         if (Acad::eOk != pBTR.open(oIdBtr, AcDb::kForRead))
  19.         {
  20.                 oIdBtr = AcDbHardPointerId::kNull;
  21.                 return;
  22.         }

  23.         /* call THIS to overrule properties after draw() */
  24.         asBtrEntityOverrule(
  25.                 giDraw,
  26.                 lwObject,
  27.                 transp,
  28.                 iEntityColor
  29.         );

  30.         /* geometry draw */
  31.         if (giDraw != nullptr)
  32.         {
  33.                 giDraw->rawGeometry()->pushModelTransform(transMat);
  34.                 giDraw->rawGeometry()->draw(pBTR);
  35.                 giDraw->rawGeometry()->popModelTransform();
  36.         }
  37.         else if (pWd != nullptr)
  38.         {
  39.                 pWd->rawGeometry()->pushModelTransform(transMat);
  40.                 pWd->rawGeometry()->draw(pBTR);
  41.                 pWd->rawGeometry()->popModelTransform();
  42.         }

  43.         /* make sure the entity overrule is deactivated */
  44.         asBtrEntityOverruleOff();

  45.         /* return */
  46.         return;

  47. } // END
  48. ///////////////////////////////////////////////////////////////////////////////                                                      
  49. //
  50. // ** AuStSubEntityTraits **
  51. class AuStSubEntityTraits : public AcGiSubEntityTraits
  52. {
  53. public:
  54.     AuStSubEntityTraits(AcGiSubEntityTraits* pTraits) : m_pTraits(pTraits) {}

  55.     /* no - ops so that entity can't change traits */
  56.     void                    setColor(const Adesk::UInt16 color) override {}
  57.     void                    setTrueColor(const AcCmEntityColor& color) override {}
  58.     void                    setTransparency(const AcCmTransparency& transparency) override {};
  59.     void                    setLineWeight(const AcDb::LineWeight lw) override {};
  60.     #ifdef ACAD2021_AND_HIGHER
  61.     void                    setLineWeight(const AcDb::LineWeight lw, const char lweight_index) override {};
  62.     #endif

  63.     /* forwarders */
  64.     void                    setLayer(const AcDbObjectId layerId) override { m_pTraits->setLayer(layerId); }
  65.     void                    setLineType(const AcDbObjectId linetypeId) override { m_pTraits->setLineType(linetypeId); }
  66.     void                    setSelectionMarker(const Adesk::LongPtr markerId) override { m_pTraits->setSelectionMarker(markerId); }
  67.     void                    setFillType(const AcGiFillType type) override { m_pTraits->setFillType(type); }
  68.     void                    setLineTypeScale(double dScale = 1.0) override { m_pTraits->setLineTypeScale(dScale); }
  69.     void                    setThickness(double dThickness) override { m_pTraits->setThickness(dThickness); }
  70.     void                    setVisualStyle(const AcDbObjectId visualStyleId) override { m_pTraits->setVisualStyle(visualStyleId); }
  71.     void                    setPlotStyleName(
  72.         AcDb::PlotStyleNameType type,
  73.         const AcDbObjectId& id = AcDbObjectId::kNull) override
  74.     {
  75.         m_pTraits->setPlotStyleName(type, id);
  76.     }
  77.     void                    setMaterial(const AcDbObjectId materialId) override { m_pTraits->setMaterial(materialId); }
  78.     void                    setMapper(const AcGiMapper* mapper) override { m_pTraits->setMapper(mapper); }
  79.     void                    setSectionable(bool bSectionable) override { m_pTraits->setSectionable(bSectionable); }
  80.     Acad::ErrorStatus       setDrawFlags(Adesk::UInt32 flags) override { return m_pTraits->setDrawFlags(flags); }
  81.     Acad::ErrorStatus       setShadowFlags(ShadowFlags flags) override { return m_pTraits->setShadowFlags(flags); }
  82.     void                    setSelectionGeom(bool bSelectionflag) override { m_pTraits->setSelectionGeom(bSelectionflag); }
  83.     void                    setFill(const AcGiFill* pFill) override { m_pTraits->setFill(pFill); }

  84.     Adesk::UInt16           color(void) const override { return m_pTraits->color(); }
  85.     AcCmEntityColor         trueColor(void) const override { return m_pTraits->trueColor(); }
  86.     AcDbObjectId            layerId(void) const override { return m_pTraits->layerId(); }
  87.     AcDbObjectId            lineTypeId(void) const override { return m_pTraits->lineTypeId(); }
  88.     AcGiFillType            fillType(void) const override { return m_pTraits->fillType(); }
  89.     AcDb::LineWeight        lineWeight(void) const override { return m_pTraits->lineWeight(); }
  90.     double                  lineTypeScale(void) const override { return m_pTraits->lineTypeScale(); }
  91.     double                  thickness(void) const override { return m_pTraits->thickness(); }
  92.     AcDbObjectId            visualStyle(void) const override { return m_pTraits->visualStyle(); }
  93.     AcDb::PlotStyleNameType getPlotStyleNameId(AcDbObjectId& idResult) const override { return m_pTraits->getPlotStyleNameId(idResult); }
  94.     AcDbObjectId            materialId(void) const override { return m_pTraits->materialId(); }
  95.     const AcGiMapper*       mapper(void) const override { return m_pTraits->mapper(); }
  96.     bool                    sectionable(void) const override { return m_pTraits->sectionable(); }
  97.     Adesk::UInt32           drawFlags(void) const override { return m_pTraits->drawFlags(); }
  98.     ShadowFlags             shadowFlags(void) const override { return m_pTraits->shadowFlags(); }
  99.     bool                    selectionGeom(void) const override { return m_pTraits->selectionGeom(); }
  100.     AcCmTransparency        transparency(void) const override { return m_pTraits->transparency(); }
  101.     const AcGiFill*         fill(void) const override { return m_pTraits->fill(); }

  102.     void                    pushMarkerOverride(
  103.         bool flag,
  104.         const Adesk::LongPtr markerId) override
  105.     {
  106.         m_pTraits->pushMarkerOverride(flag, markerId);
  107.     }
  108.     void                    popMarkerOverride(void) override { m_pTraits->popMarkerOverride(); }
  109.     void                    clearMarkerOverride(void) override { m_pTraits->clearMarkerOverride(); }

  110. private:
  111.     AcGiSubEntityTraits* m_pTraits;

  112. };


  113. ///////////////////////////////////////////////////////////////////////////////                                                      
  114. //
  115. // ** AuStWorldDraw **
  116. class AuStWorldDraw : public AcGiWorldDraw
  117. {
  118. public:
  119.     AuStWorldDraw(AcGiWorldDraw* pWD) : m_pWD(pWD), m_traits(&pWD->subEntityTraits()) { }

  120.     AcGiWorldGeometry&  geometry() const override { return m_pWD->geometry(); }
  121.     AcGiRegenType       regenType() const override { return m_pWD->regenType(); }
  122.     Adesk::Boolean      regenAbort() const override { return m_pWD->regenAbort(); }
  123.     AcGiGeometry*       rawGeometry() const override { return m_pWD->rawGeometry(); }
  124.     Adesk::Boolean      isDragging() const override { return m_pWD->isDragging(); }
  125.     Adesk::UInt32       numberOfIsolines() const override { return m_pWD->numberOfIsolines(); }

  126.     AcGiContext*        context() override { return m_pWD->context(); }

  127.     double deviation(const AcGiDeviationType dev, const AcGePoint3d& pt) const override
  128.     {
  129.         return m_pWD->deviation(dev, pt);
  130.     }

  131.     AcGiSubEntityTraits& subEntityTraits() const override
  132.     {
  133.         /* hook sub entity traits */
  134.         return const_cast<AuStWorldDraw*>(this)->m_traits;
  135.     }

  136. private:
  137.     AcGiWorldDraw* m_pWD;
  138.     AuStSubEntityTraits m_traits;

  139. };


  140. ///////////////////////////////////////////////////////////////////////////////                                                      
  141. //
  142. // ** AuStViewportDraw **
  143. class AuStViewportDraw : public AcGiViewportDraw
  144. {
  145. public:
  146.     AuStViewportDraw(AcGiViewportDraw* pVD) : m_pVD(pVD), m_traits(&m_pVD->subEntityTraits()) { }

  147.     AcGiViewportGeometry& geometry() const override { return m_pVD->geometry(); }
  148.     AcGiRegenType       regenType() const override { return m_pVD->regenType(); }
  149.     Adesk::Boolean      regenAbort() const override { return m_pVD->regenAbort(); }
  150.     AcGiGeometry* rawGeometry() const override { return m_pVD->rawGeometry(); }
  151.     Adesk::Boolean      isDragging() const override { return m_pVD->isDragging(); }
  152.     Adesk::UInt32       numberOfIsolines() const override { return m_pVD->numberOfIsolines(); }
  153.     AcGiContext* context() override { return m_pVD->context(); }

  154.     double deviation(const AcGiDeviationType dev, const AcGePoint3d& pt) const override
  155.     {
  156.         return m_pVD->deviation(dev, pt);
  157.     }

  158.     AcGiSubEntityTraits& subEntityTraits() const override
  159.     {
  160.         /* hook sub entity traits */
  161.         return const_cast<AuStViewportDraw*>(this)->m_traits;
  162.     }

  163. private:
  164.     AcGiViewportDraw* m_pVD;
  165.     AuStSubEntityTraits m_traits;

  166. };



  167. ///////////////////////////////////////////////////////////////////////////////                                                        
  168. // Class Macros
  169. //
  170. // ** AuStEntityOverrule **
  171. /* See SDK Documentation under "Class Implementation Macros" */
  172. /* Or rxBoiler.h */
  173. // ACRX_DEFINE_MEMBERS(AuStEntityOverrule); /* LINKER >> rxInit() not solved */
  174. // ACRX_CONS_DEFINE_MEMBERS(AuStEntityOverrule, AcGiDrawableOverrule, 1); /* compile error >> build abstract class not possible */
  175. ACRX_NO_CONS_DEFINE_MEMBERS(AuStEntityOverrule, AcGiDrawableOverrule); /* build ok */

  176.                                                                        
  177. ///////////////////////////////////////////////////////////////////////////////                                                      
  178. // Static Member
  179. //
  180. // ** AuStEntityOverrule **
  181. AuStEntityOverrule *AuStEntityOverrule::_pEntityOverrule = nullptr;


  182. ///////////////////////////////////////////////////////////////////////////////
  183. // Constructor, Destructor
  184. //
  185. // ** AuStEntityOverrule **
  186. AuStEntityOverrule::AuStEntityOverrule()
  187. {
  188.     if (AuStEntityOverrule::desc() == nullptr)
  189.     {
  190.         AuStEntityOverrule::rxInit();
  191.         acrxBuildClassHierarchy();
  192.     }
  193. }
  194. AuStEntityOverrule::~AuStEntityOverrule()
  195. {
  196. }


  197. ///////////////////////////////////////////////////////////////////////////////                                                      
  198. // PUBLIC Class Methods
  199. //
  200. // ** AuStEntityOverrule **
  201. void AuStEntityOverrule::Activate()
  202. {   
  203.     /* is already instantiated */
  204.     if (_pEntityOverrule != nullptr)
  205.         return;

  206.     /* new overrule */
  207.     _pEntityOverrule = new AuStEntityOverrule();

  208.     /* add overrule */
  209.     AcRxOverrule::addOverrule(
  210.         AcDbEntity::desc(),
  211.         _pEntityOverrule,
  212.         true
  213.     );

  214.     /* enable overrule */
  215.     _pEntityOverrule->Enable();
  216.    
  217. } // END
  218. void AuStEntityOverrule::Deactivate(bool bUnregister /* = true */)
  219. {
  220.     if (_pEntityOverrule == nullptr)
  221.         return;

  222.     /* */
  223.     /* Deactivate from AcRx::AppRetCode On_kUnloadAppMsg() */
  224.     /* */

  225.     /* disable overrule */
  226.     _pEntityOverrule->Disable();

  227.     if (bUnregister)
  228.     {
  229.         AcRxOverrule::removeOverrule(
  230.             AcDbEntity::desc(),
  231.             _pEntityOverrule
  232.         );

  233.         delete _pEntityOverrule;
  234.         _pEntityOverrule = nullptr;
  235.     }

  236. } // END
  237. void AuStEntityOverrule::Enable()
  238. {
  239.     m_bEnableOverrule = true;

  240.     if (!AcRxOverrule::isOverruling())
  241.         AcRxOverrule::setIsOverruling(true);
  242. }
  243. void AuStEntityOverrule::Disable()
  244. {
  245.     m_bEnableOverrule = false;

  246.     /* these have no effect! the flag will be true even when setting it to false... */
  247.     /* This maybe come from the overrule not removed from AcRxOverrule::removeOverrule() */
  248.     if (AcRxOverrule::isOverruling())
  249.         AcRxOverrule::setIsOverruling(false);
  250. }


  251. /////////////////////////////////////////////////
  252. // PUBLIC Class Methods
  253. //
  254. // ** AuStEntityOverrule **
  255. void AuStEntityOverrule::updateTraits(
  256.     AcDb::LineWeight lwObject,
  257.     AcCmTransparency &transp,
  258.     AcDbObjectId& layerOid,
  259.     Adesk::UInt16 &iEntityColor
  260. )
  261. {
  262.     m_lwObject = lwObject;
  263.     m_transp = transp;
  264.     m_layerOid = layerOid;
  265.     m_iEntityColor = iEntityColor;

  266.     /* enable overrule >> need to disable overrule after BTR draw */
  267.     Enable();

  268. } // END


  269. /////////////////////////////////////////////////
  270. // PRIVATE Class Methods
  271. //
  272. // ** AuStEntityOverrule **
  273. bool AuStEntityOverrule::isApplicable(const AcRxObject *pOverruledSubject) const
  274. {
  275.     /* here we need to implement our own ON/OFF flag to enable or disable the per object overrule */
  276.     /* the IsOverruling() from the base class will be always 1, even if setIsOverruling(false) is applied */

  277.     if (m_bEnableOverrule)
  278.         return true;
  279.     else
  280.         return false;

  281. } // END


  282. /////////////////////////////////////////////////
  283. // PRIVATE Class Methods
  284. //
  285. // ** AuStEntityOverrule **
  286. Adesk::Boolean AuStEntityOverrule::worldDraw(AcGiDrawable* pSubject, AcGiWorldDraw* wd)
  287. {
  288.     /* skip entities for overrule */
  289.     AcRxClass* rxClass = skipEntity(pSubject);
  290.     if (rxClass != AcDbEntity::desc())
  291.     {
  292.         /* returning false for AcDbMText is neccessary for text and text background color */
  293.         if (rxClass == AcDbMText::desc())
  294.             return Adesk::kFalse;

  295.         /* return base class world draw */
  296.         else
  297.             return AcGiDrawableOverrule::worldDraw(pSubject, &AuStWorldDraw(wd));
  298.     }

  299.     /* The default attributes are set, go ahead and override */
  300.     setTraits(
  301.         pSubject,
  302.         wd,
  303.         nullptr
  304.     );

  305.     /* return */
  306.     return AcGiDrawableOverrule::worldDraw(pSubject, &AuStWorldDraw(wd));

  307. } // END


  308. /////////////////////////////////////////////////
  309. // PRIVATE Class Methods
  310. //
  311. // ** AuStEntityOverrule **
  312. void AuStEntityOverrule::viewportDraw(AcGiDrawable* pSubject, AcGiViewportDraw* vd)
  313. {
  314.     /* skip entities for overrule */
  315.     if (AcDbEntity::desc() != skipEntity(pSubject))
  316.         return AcGiDrawableOverrule::viewportDraw(pSubject, vd);

  317.     /* The default attributes are set, go ahead and override */
  318.     setTraits(
  319.         pSubject,      
  320.         nullptr,
  321.         vd
  322.     );

  323.     /* return */
  324.     return AcGiDrawableOverrule::viewportDraw(pSubject, vd);

  325. } // END


  326. /////////////////////////////////////////////////
  327. // PRIVATE Class Methods
  328. //
  329. // ** AuStEntityOverrule **
  330. void AuStEntityOverrule::setTraits(
  331.     AcGiDrawable *pSubject,
  332.     AcGiWorldDraw *wd,
  333.     AcGiViewportDraw *vd
  334. )
  335. {
  336.     /* get entity */
  337.     AcDbEntity *pEnt = AcDbEntity::cast(pSubject);

  338.     /* When the entity is part of a BTR, we check eByLayer and eByBlock */
  339.     /* If the color of the entity is fixed (others than eByLayer || eByBlock), we DO NOT change the color! */

  340.     /* get layer color */
  341.     if (pEnt->colorIndex() == AuSt::eByLayer)
  342.     {
  343.         /* get layer color from layer */
  344.         m_iEntityColor = getLayerColor(pEnt->layerId());
  345.     }

  346.     /* set color */
  347.     if ((pEnt->colorIndex() == AuSt::eByBlock) ||
  348.         (pEnt->colorIndex() == AuSt::eByLayer))
  349.     {
  350.         if      (wd != nullptr)
  351.             wd->subEntityTraits().setColor(m_iEntityColor);
  352.         else if (vd != nullptr)
  353.             vd->subEntityTraits().setColor(m_iEntityColor);
  354.     }


  355.     /* set lineweight */
  356.     if      (wd != nullptr)
  357.         wd->subEntityTraits().setLineWeight(m_lwObject);
  358.     else if (vd != nullptr)
  359.         vd->subEntityTraits().setLineWeight(m_lwObject);


  360.     /* set transparency */
  361.     if      (wd != nullptr)
  362.         wd->subEntityTraits().setTransparency(m_transp);
  363.     else if (vd != nullptr)
  364.         vd->subEntityTraits().setTransparency(m_transp);


  365.     /* get layer from BTR entity when input is NULL >> is used for viewport display */
  366.     if (m_layerOid == AcDbObjectId::kNull)
  367.         m_layerOid = pEnt->layerId();

  368.     /* otherwise, we use the BTR entity layer when layerOid is null */

  369.     /* set layer */
  370.     if      (wd != nullptr)
  371.         wd->subEntityTraits().setLayer(m_layerOid);
  372.     else if (vd != nullptr)
  373.         vd->subEntityTraits().setLayer(m_layerOid);


  374.     /* Housekeeping */
  375.     pEnt = nullptr;


  376.     /* return */
  377.     return;

  378. } // END


  379. /////////////////////////////////////////////////
  380. // PRIVATE Class Methods
  381. //
  382. // ** AuStEntityOverrule **
  383. Adesk::UInt16 AuStEntityOverrule::getLayerColor(AcDbObjectId &oId)
  384. {
  385.     Adesk::UInt16 retValue = AuSt::eBlackWhite;
  386.     AcDbLayerTableRecord* pLTR = nullptr;
  387.     if (Acad::eOk == acdbOpenObject(
  388.         pLTR,
  389.         oId,
  390.         AcDb::kForRead))
  391.     {
  392.         retValue = pLTR->color().colorIndex();
  393.         pLTR->close();
  394.     }
  395.     pLTR = nullptr;
  396.     return retValue;

  397. } // END


  398. /////////////////////////////////////////////////
  399. // PRIVATE Class Methods
  400. //
  401. // ** AuStEntityOverrule **
  402. AcRxClass* AuStEntityOverrule::skipEntity(AcGiDrawable* pSubject)
  403. {
  404.     /* skip AcDbAttributeDefinition */
  405.     AcDbAttributeDefinition* pAtt = AcDbAttributeDefinition::cast(pSubject);
  406.     if (pAtt != nullptr)
  407.     {
  408.         pAtt = nullptr;
  409.         return AcDbAttributeDefinition::desc();
  410.     }

  411.     /* skip AcDbMText */
  412.     AcDbMText* pMtxt = AcDbMText::cast(pSubject);
  413.     if (pMtxt != nullptr)
  414.     {
  415.         pMtxt = nullptr;
  416.         return AcDbMText::desc();
  417.     }

  418.     /* return */
  419.     return AcDbEntity::desc();

  420. } // END
复制代码

 

 

 

 

arx 代码

该用户从未签到

主题

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=118846][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
arx 代码

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
泰康利膜材,作为美国泰康利(Taconic)公司旗下的重要产品系列,以其优异的性能和广泛的应用领域在建筑、工业等多个行业中占据重要地位。以下是对泰康利膜材的详细分析:
[b]一、公司背景与实力[/b]
公司概况:
成立时间:1961年,由美国企业家Lester在纽约Petersburgh创立。
发展历程:自创立以来,Taconic始终在研发及销售高性能合成材料的行业中占有主导地位。1975年在爱尔兰成立工厂,1996年在韩国成立工厂,2006年在巴西成立工厂。
市场地位:作为全球铁氟龙(Teflon/PTFE)产品的主导公司,Taconic的产品出口到约四十个国家。
子公司:泰康利复合材料(苏州)有限公司是Taconic亚太总部韩国Taconic于2008年投资创立的全资子公司,主要负责中国境内的产品销售和技术服务。

[b]二、产品特点[/b]
泰康利膜材,特别是其PTFE膜材系列,具有以下显著特点:
高强度:膜材能够承受较大的拉伸和撕裂力,确保结构的稳定性和安全性。
耐久性:材料经久耐用,能够在各种恶劣环境下长期使用而不易损坏。
防火性:具有良好的阻燃性能,提高建筑的安全性。
耐腐蚀性:能够抵抗多种化学物质的侵蚀,延长使用寿命。
自洁性:雨水自然冲刷即可保持膜材表面的清洁,减少维护成本。
抗紫外线:有效阻挡紫外线,保护内部材料和结构不受损害。
[b]三、产品系列与型号[/b]
泰康利膜材的PTFE膜材系列包括多个型号,如Solus 850、Solus 1110、Solus 1120、Solus 1420等。这些型号在厚度、透光率、拉伸强度等性能上略有差异,以满足不同应用场景的需求。
[b]四、应用领域[/b]
泰康利膜材广泛应用于多个领域,包括但不限于:
建筑领域:用于体育场馆、展览馆、机场航站楼等大型公共建筑的屋顶和墙面覆盖,提供美观、耐用且功能强大的建筑解决方案。
工业领域:在压力感应胶带、工程传输带、硅橡胶涂层产品等方面有广泛应用,满足工业生产的各种需求。
环保与能源领域:在风力发电领域,PTFE膜材作为叶片涂层或发电机罩材料,提高设备的运行效率和耐久性,推动清洁能源的发展。
[b]五、环保与可持续性[/b]
Taconic公司注重环保与可持续性发展,采取有效策略减少对环境的影响。例如,在生产和应用过程中回收利用和循环利用PTFE膜材料,降低资源消耗和碳排放。
[b]六、总结[/b]
泰康利膜材作为Taconic公司的核心产品之一,以其优异的性能和广泛的应用领域在市场上享有很高的声誉。随着科技的不断进步和市场的不断发展,泰康利膜材将继续保持其领先地位,为客户提供更加优质的产品和服务。同时,Taconic公司也将继续致力于环保与可持续性发展,推动行业的绿色转型。

 

 

 

 

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

本版积分规则

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

GMT+8, 2024-10-18 11:25 , Processed in 0.214533 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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