天气与日历 切换到窄版

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

连接JoinToPline

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
//-----------------------------------------------------------------------------
//----- acrxEntryPoint.cpp
//-----------------------------------------------------------------------------
#include "StdAfx.h"
#include "resource.h"

//-----------------------------------------------------------------------------
#define szRDS _RXST("")

//-----------------------------------------------------------------------------
//----- ObjectARX EntryPoint
class CJoinToPlineApp : public AcRxArxApp {

public:
  CJoinToPlineApp () : AcRxArxApp () {}

  virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
    AcRx::AppRetCode retCode = AcRxArxApp::On_kInitAppMsg (pkt) ;
    return (retCode) ;
  }

  virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
    AcRx::AppRetCode retCode = AcRxArxApp::On_kUnloadAppMsg (pkt) ;
    return (retCode) ;
  }

  virtual void RegisterServerComponents () {
  }

  static void JoinToPlineJoinToPline () {
    // Фильтр для выбора отрезков (LINE) и дуг (ARC)
    ACHAR* promptPtrs[] = {
      _T("\nSelect lines and arcs for join in poyline (ENTER - exit): "),
      _T("\nRemove lines and arcs from selection set: ")
    };

    ads_name ss;
    resbuf *rbFilter = acutBuildList(RTDXF0,_T("LINE,ARC"),RTNONE);
    int rc = acedSSGet(_T(":$"),promptPtrs,NULL,rbFilter,ss);
    acutRelRb(rbFilter);

    if (rc != RTNORM) return;

    AcDbObjectIdArray ids;
    if (ObjectIdArrayFromSelSet(ss, ids) != Acad::eOk) return;
    while (ids.length() > 0)
    {
      AcDbEntity *p = MakeJonedPoly(ids);
      if (p) {
        AcDbBlockTableRecordPointer pSpace(acdbCurDwg()->currentSpaceId(), AcDb::kForWrite);
        if (pSpace.openStatus() != Acad::eOk) return;
        pSpace->appendAcDbEntity(p);
        p->close();
      } else {
        acutPrintf(_T("\nError in data!"));
        return;
      }
    }

  }

  /// <summary>
  /// AcDbObjectIdArray from SelectionSet
  /// </summary>
  /// <param name="sset">SelectionSet</param>
  /// <param name="ids">AcDbObjectIdArray</param>
  /// <returns></returns>
  static Acad::ErrorStatus ObjectIdArrayFromSelSet(ads_name sset, AcDbObjectIdArray &ids)
  {
    Acad::ErrorStatus es = Acad::eOk;
    long nset = -1;
    if (acedSSLength(sset,&nset) != RTNORM) return Acad::eAmbiguousInput;
    ids.setLogicalLength(nset);
    ads_name en;
    AcDbObjectId id;
    for (long i=0; i < nset; i++) {
      if (acedSSName(sset,i,en) == RTNORM) {
        if ((es = acdbGetObjectId(id,en)) != Acad::eOk) return es;
        ids[i] = id;
      }
    }
    return Acad::eOk;
  }

  /// <summary>
  /// Create polyline from lines and arcs.
  /// Those ids will remove from input array
  /// </summary>
  /// <param name="ids">Array of id's</param>
  /// <param name="FUZZ">The accuracy of determining the distance between points</param>
  /// <returns></returns>
  static AcDbPolyline* MakeJonedPoly(
    AcDbObjectIdArray &ids,
    double FUZZ = AcGeContext::gTol.equalPoint())
  {
    AcDbPolyline *p = new AcDbPolyline();
    p->setDatabaseDefaults();
    AcDbObjectId idFirst = ids[0];
    AcGePoint3d nextPt = AcGePoint3d::kOrigin;
    AcGePoint3d prevPt = AcGePoint3d::kOrigin;

    AcDbObjectPointer<AcDbCurve> c(idFirst,AcDb::kForRead);
    if (c.openStatus() == Acad::eOk) {
      AcGePoint3d ptStart, ptEnd;
      c->getStartPoint(ptStart); c->getEndPoint(ptEnd);
      p->addVertexAt(0, asPnt2d(asDblArray(ptStart)), BulgeFromArc(c, false), 0, 0);
      p->addVertexAt(1, asPnt2d(asDblArray(ptEnd)), 0, 0, 0);
      nextPt = ptEnd;
      prevPt = ptStart;
    }

    ids.remove(idFirst);
    int prevCnt = ids.length() + 1;

    while (ids.length() > 0 && ids.length() < prevCnt)
    {
      prevCnt = ids.length();
      for (int i = 0; i < ids.length(); i++) {
        AcDbObjectId id = ids[i];
        AcDbObjectPointer<AcDbCurve> cv(id,AcDb::kForRead);
        if (cv.openStatus() == Acad::eOk) {
          AcGePoint3d ptStart, ptEnd;
          cv->getStartPoint(ptStart); cv->getEndPoint(ptEnd);
          if (ptStart.distanceTo(nextPt) < FUZZ || ptEnd.distanceTo(nextPt) < FUZZ) {
            double bulge = BulgeFromArc(cv, ptEnd.distanceTo(nextPt) < FUZZ);
            p->setBulgeAt(p->numVerts() - 1, bulge);
            if (ptStart.distanceTo(nextPt) < FUZZ)
              nextPt = ptEnd;
            else
              nextPt = ptStart;
            p->addVertexAt(p->numVerts(), asPnt2d(asDblArray(nextPt)), 0, 0, 0);
            ids.remove(id);
            break;
          } else if (ptStart.distanceTo(prevPt) < FUZZ || ptEnd.distanceTo(prevPt) < FUZZ) {
            double bulge = BulgeFromArc(cv, ptStart.distanceTo(prevPt) < FUZZ);
            if (ptStart.distanceTo(prevPt) < FUZZ)
              prevPt = ptEnd;
            else
              prevPt = ptStart;
            p->addVertexAt(0, asPnt2d(asDblArray(prevPt)), bulge, 0, 0);
            ids.remove(id);
            break;
          }
        }
      }
    }
    if (p->numVerts() == 0) {
      delete p;  return NULL;
    }  else  {
      return p;
    }
  }

  /// <summary>
  /// Getting bulge of curve
  /// </summary>
  /// <param name="c">AcDbCurve pointer</param>
  /// <param name="clockwise">direction.</param>
  /// <returns></returns>
  static double BulgeFromArc(AcDbCurve *c, bool clockwise)
  {
    double bulge = 0.0;
    AcDbArc *a = AcDbArc::cast(c);
    if (a == NULL) return bulge;

    double newStart =
      (a->startAngle() > a->endAngle()) ?
      (a->startAngle() - 8 * atan(1.0)) :
      (a->startAngle());

    bulge = tan((a->endAngle() - newStart) / 4.0);
    if (clockwise) bulge = -bulge;
    return bulge;
  }
} ;

//-----------------------------------------------------------------------------
IMPLEMENT_ARX_ENTRYPOINT(CJoinToPlineApp)
ACED_ARXCOMMAND_ENTRY_AUTO(CJoinToPlineApp, JoinToPline, JoinToPline, JoinToPline, ACRX_CMD_MODAL, NULL)

 

 

 

 

连接JoinToPline

该用户从未签到

主题

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

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
泰克斯膜材作为一种高性能的纺织材料,在建筑、户外用品等多个领域有着广泛的应用。以下是对泰克斯膜材的详细分析:
[b]一、公司背景与实力[/b]
成立与发展:泰克斯膜材品牌成立于1990年代初期,总部位于中国广东省佛山市。公司自成立以来,逐步发展成为国内外知名的纺织品品牌,产品远销世界各地,深受客户好评。
产品线:泰克斯膜材主要致力于研究、开发、生产和销售各种功能性纺织材料,包括帐篷、遮阳篷、雨衣、冲锋衣等户外用品以及家居纺织品。
技术创新:泰克斯膜材拥有一支专业的技术研发团队,不断创新和优化生产工艺,为客户提供高品质、高性能的产品。
[b]二、产品特点[/b]
高性能材料:泰克斯膜材选用优质的原料,如涤纶、氨纶等,确保产品的耐用性。同时,通过特殊工艺处理,膜材具备出色的物理和化学性能。
自洁能力:泰克斯膜材具有卓越的自洁能力,雨水冲刷即可保持膜材表面的清洁,减少维护成本。
防污性:膜材表面经过特殊处理,具有良好的防污性能,能够有效抵抗污渍的附着。
透光性与节能性:泰克斯膜材对自然光的透射率较高,同时具有良好的隔热性能,有助于节省能源。
温控性:膜材还能提供舒适的温控效果,适应不同气候条件下的使用需求。
[b]三、技术应用[/b]
泰克斯膜材在技术应用方面也具有显著优势。例如,部分产品采用了新型氟化物涂层(如PVDF)技术,这种技术通过超亲水性和氧化分解作用大幅提升有机物的分解能力,从而保持膜材表面的清洁和性能稳定。这种技术的引入不仅提高了膜材的自洁性和耐久性,还延长了产品的使用寿命。
[b]四、应用领域[/b]
泰克斯膜材广泛应用于建筑、户外用品、家居装饰等多个领域。在建筑领域,它可用作膜结构建筑的覆盖材料;在户外用品方面,它则是帐篷、遮阳篷等产品的理想选择;在家居装饰领域,泰克斯膜材以其独特的性能和美观的外观受到消费者的青睐。
[b]五、市场前景与发展趋势[/b]
随着科技的进步和人们对高品质生活的追求,泰克斯膜材的市场前景十分广阔。未来,泰克斯膜材将继续发挥其技术优势和产品优势,不断拓展新的应用领域和市场空间。同时,公司也将继续加大研发投入和技术创新力度,推出更多符合市场需求的高性能膜材产品。
综上所述,泰克斯膜材以其卓越的性能和广泛的应用领域在市场上占据重要地位。随着技术的不断进步和市场的不断发展,泰克斯膜材的应用前景将更加广阔。

 

 

 

 

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

本版积分规则

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

GMT+8, 2024-11-1 09:26 , Processed in 0.149742 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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