天气与日历 切换到窄版

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

查找多个AcDbLine的所有交点

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
[code]// These are template classes to allow AcGePoint3d do be used as a Key do CMap class
const double _dTol = 0.0001;

template<> UINT AFXAPI HashKey<AcGePoint3d> (AcGePoint3d key)
{
        CString sPoint;
        sPoint.Format(_T("%f,%f,%f"),key.x, key.y ,key.z);

        UINT iHash = (NULL == &key) ? 0 : HashKey((LPCSTR)sPoint.GetBuffer());
        return iHash;
}

template<> BOOL AFXAPI CompareElements<AcGePoint3d, AcGePoint3d>
(const AcGePoint3d* pElement1, const AcGePoint3d* pElement2)
{
        if ((pElement1 == NULL) || (pElement2 == NULL))
                return false;

        AcGeTol gTol;
        gTol.setEqualPoint(_dTol); // Point comparison tolerance
        return (pElement1->isEqualTo(*pElement2,gTol));
}


// Collect lines from ModelSpace
Acad::ErrorStatus es;
AcDbDatabase *pDb = acdbHostApplicationServices()->workingDatabase();
AcDbBlockTableRecordPointer pBTR(acdbSymUtil()->blockModelSpaceId(pDb),AcDb::kForWrite);

AcDbBlockTableRecordIterator *pIter = NULL;
pBTR->newIterator(pIter, true);
AcDbObjectIdArray arrLines;

while(!pIter->done())
{
        AcDbEntity *pEnt = NULL;
        es = pIter->getEntity(pEnt, AcDb::kForRead);
        if (es == Acad::eOk)
        {
                if (pEnt->isKindOf(AcDbLine::desc()))
                        arrLines.append(pEnt->objectId());

                pEnt->close();
        }

        pIter->step(true);
}
delete pIter;
pIter = NULL;

if (arrLines.length() == 0)
{
        acutPrintf(_T("There are no lines in Model Space!\n"));
        return;
}
else
{
        acutPrintf(_T("We've found %d lines in Model Space!\nChecking intersection with tolerance %f...\n"),
                arrLines.length(), _dTol);
}


// Process lines in pairs
CMap<AcGePoint3d,AcGePoint3d,AcDbObjectIdArray,AcDbObjectIdArray&> mapLines;

acdbTransactionManager->startTransaction();
for (int i=0; i<arrLines.length()-1; i++)
{
        AcDbLine* pLineA = NULL;
        if (acdbTransactionManager->getObject((AcDbObject*&)pLineA,arrLines<i>, AcDb::kForRead) == Acad::eOk)
        {
                for (int j=i+1; j<arrLines.length(); j++)
                {
                        AcDbLine* pLineB = NULL;
                        if (acdbTransactionManager->getObject((AcDbObject*&)pLineB,arrLines[j], AcDb::kForRead) == Acad::eOk)
                        {
                                AcGePoint3dArray arrPts;
                                if (pLineA->intersectWith(pLineB,AcDb::kOnBothOperands,arrPts) == Acad::eOk)
                                {
                                        if (arrPts.length() > 0)
                                        {
                                                for (int p=0; p<arrPts.length(); p++)
                                                {
                                                        AcDbObjectIdArray arrExist;
                                                        if (mapLines.Lookup(arrPts[p],arrExist) == TRUE)
                                                        {
                                                                // Existing point...
                                                                if (arrExist.contains(pLineA->objectId()) == false)
                                                                        mapLines[arrPts[p]].append(pLineA->objectId());

                                                                if (arrExist.contains(pLineB->objectId()) == false)
                                                                        mapLines[arrPts[p]].append(pLineB->objectId());
                                                        }
                                                        else
                                                        {
                                                                // New point...
                                                                AcDbObjectIdArray arrNewEnts;
                                                                arrNewEnts.append(pLineA->objectId());
                                                                arrNewEnts.append(pLineB->objectId());
                                                                mapLines.SetAt(arrPts[p],arrNewEnts);
                                                        }
                                                }
                                        }
                                }
                        }
                }
        }
}

acdbTransactionManager->endTransaction();


// Just as demonstration, walk through points and add an AcDbPoint entity to ModelSpace then print the info
POSITION pos = mapLines.GetStartPosition();
while (pos)
{
        AcGePoint3d ptKey(0,0,0);
        AcDbObjectIdArray arrEnts;
        mapLines.GetNextAssoc(pos,ptKey, arrEnts);

        AcDbPoint* ptEnt = new AcDbPoint(ptKey);
        AcDbObjectId idPointEnt;
        pBTR->appendAcDbEntity(idPointEnt,ptEnt);
        ptEnt->close();

        CString sEnts;
        for (int e=0; e<arrEnts.length(); e++)
        {
                ACHAR pBuff[255] = _T("");
                arrEnts[e].handle().getIntoAsciiBuffer(pBuff);
                CString sBuff;
                sBuff.Format( (e==arrEnts.length()-1) ? _T("%s"): _T("%s,"), pBuff);
                sEnts += sBuff;
        }

        CString sPromptReport;
        sPromptReport.Format(_T("Point (%.4f, %.4f, %.4f) - Entities [%s]\n"),ptKey.x, ptKey.y, ptKey.z, sEnts);
        acutPrintf(sPromptReport);
}[/code]

 

 

 

 

查找多个AcDbLine的所有交点

该用户从未签到

主题

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=6850][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
查找多个AcDbLine的所有交点

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
维立凯膜材,特别是其PTFE膜材,是一种高性能的建筑及工业用材料。以下是对维立凯品牌及其PTFE膜材的详细介绍,包括品牌介绍和膜材型号参数。
一、[b]维立凯品牌介绍[/b]
维立凯(可能指上海维立凯膜材料有限公司或其关联公司)是一家专注于膜材研发、生产和销售的企业。该公司致力于氟、硅系列涂层产品的研发、生产和销售,产品广泛应用于食品加工、建筑、汽车、光伏/太阳能、包装等多个领域。维立凯膜材以其优异的性能、稳定的品质和广泛的应用领域在市场上享有良好的声誉。
二、[b]PTFE膜材详细介绍[/b]
1. 材料特性
PTFE膜材,全称为聚四氟乙烯膜材,是在极细的玻璃纤维编织的基布上涂覆聚四氟乙烯(PTFE,俗称特氟龙)树脂而形成的复合材料。它具有以下特性:

稳定性:具有稳定的形状,并能承受一定载荷,被公认为是继砖、石、混凝土、钢和木材之后的“第六种建筑材料”。
耐久性:作为永久性建筑材料,PTFE建筑膜材的使用寿命可达30年以上。
力学性能:强度高,耐久性好,拉伸强度可达到钢材水平,且弹性模量低,有利于形成复杂的曲面造型。
防火性能:防火等级通常为B1级,具有卓越的阻燃和耐高温性能。
光学性能:对自然光的透射率可达一定水平,且能将太阳光转化为阴影少的滋润扩散光,夜间在内部照明和外部光线的共同照射下,形成晶莹剔透半透明体,视觉效果佳。

2. 膜材型号参数(以维立凯某型号PTFE膜材为例)
请注意,由于具体型号参数可能因产品批次、生产标准和客户需求而有所不同,以下参数为示例:
参数名称参数值
型号 H302Y(示例型号,实际型号可能不同)
结构类型 张拉式膜结构
材质 PTFE
透光率 10%(具体数值可能因型号和涂层处理而异)
使用寿命 30年以上
厚度  0.6mm(示例厚度,实际厚度可能不同)
克重 1050g/平方米(示例克重,实际克重可能不同)
抗拉强度  径向6000N/5cm(示例值,实际强度可能因型号和涂层处理而异)
颜色  通常为乳白、半透明,可根据设计需求定制其他颜色
应用范围 膜结构建筑、体育场馆、展览馆、遮阳篷等

3. 生产工艺与质量控制
维立凯PTFE膜材采用优质进口玻璃纤维和树脂原材料,经过先进的生产工艺和技术处理而成。公司可能拥有多条生产线和先进的生产设备,如德国卡尔迈耶全自动高速整经机、多尼尔宽幅剑杆织机等,以确保产品质量的稳定性和一致性。此外,维立凯膜材还通过了多项国际和国内认证及检测,如SGS、国家玻璃纤维产品质量监督检验、国家防火建筑材料质量监督检验等,进一步证明了其产品的可靠性和优异性。
综上所述,维立凯PTFE膜材是一种高性能、耐久性强、防火等级高、光学性能优异的建筑材料,广泛应用于各种建筑和工业领域。

 

 

 

 

查找多个AcDbLine的所有交点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-1 15:18 , Processed in 0.186932 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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