<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Betreff: Compilation failed in ObjectARX Forum</title>
    <link>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13642206#M10</link>
    <description>&lt;P&gt;I get the compiler error:&lt;/P&gt;
&lt;P&gt;error C2664: 'iterator AcBrMesh2dFilter::insert(const value_type &amp;amp;)': cannot convert argument 1 from 'std::pair&amp;lt;const AcBrEntity *,AcBrMesh2dControl&amp;gt;' to 'const value_type &amp;amp;'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Solution: replace the line&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;mf.insert(make_pair(pMeshEnt, mc));&lt;/LI-CODE&gt;
&lt;P&gt;with&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;mf.insert(::make_pair(pMeshEnt, mc));  // TB add :: to use global scope&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is a tricky one.&amp;nbsp;&lt;SPAN&gt;In your source&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;acrxEntryPoint.cpp you wrote&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;using namespace std;&lt;/LI-CODE&gt;
&lt;P&gt;Which causes the line&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;mf.insert(make_pair(pMeshEnt, mc));&lt;/LI-CODE&gt;
&lt;P&gt;To use &lt;FONT face="courier new,courier"&gt;std::make_pair()&lt;/FONT&gt;.&amp;nbsp; But&amp;nbsp;brmesh2d.h defines the&amp;nbsp; function that is required here:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;inline pair
make_pair(const AcBrEntity*&amp;amp; entity, const AcBrMesh2dControl&amp;amp; control)
{ return pair(entity, control); }&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 21 May 2025 09:21:34 GMT</pubDate>
    <dc:creator>tbrammer</dc:creator>
    <dc:date>2025-05-21T09:21:34Z</dc:date>
    <item>
      <title>Compilation failed</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13639630#M6</link>
      <description>&lt;LI-CODE lang="cpp"&gt;	// 将3D实体转换为多边形网格
	static void Rivilis3DSolidToPolyMesh() {
		ads_name en; ads_point pt;

		// 选择实体
		if (acedEntSel(_T("\n选择3DSolid:"), en, pt) != RTNORM) return;

		AcDbObjectId eid;
		if (acdbGetObjectId(eid, en) != Acad::eOk) return;

		// 打开3D实体
		AcDbObjectPointer&amp;lt;AcDb3dSolid&amp;gt; p3DSolid(eid, AcDb::kForRead);
		if (p3DSolid.openStatus() != Acad::eOk) {
			acutPrintf(_T("\n打开实体失败!"));
			return;
		}

		// 获取实体范围
		AcDbExtents ext;
		if (p3DSolid-&amp;gt;getGeomExtents(ext) != Acad::eOk) return;
		double dLength = ext.minPoint().distanceTo(ext.maxPoint());

		// 创建Brep对象
		AcBrBrep brp;
		if (brp.set(*p3DSolid) != AcBr::eOk) {
			acutPrintf(_T("\n创建Brep失败"));
			return;
		}

		// 设置网格参数
		AcBrMesh2dControl mc;
		mc.setDistTol(dLength / 100.0);
		mc.setElementShape(AcBr::kAllTriangles);

		// 创建网格过滤器
		AcBrMesh2dFilter mf;
		const AcBrEntity* pMeshEnt = (AcBrEntity*)&amp;amp;brp;
		//mf.insert(std::make_pair(pMeshEnt, mc));  // 显式使用 std::

		// 生成网格
		AcBrMesh2d brepMesh;
		if (brepMesh.generate(mf) != AcBr::eOk) {
			acutPrintf(_T("\n生成网格失败"));
			return;
		}

		// 创建多边形网格对象
		AcDbPolyFaceMesh* pMesh = new AcDbPolyFaceMesh();
		pMesh-&amp;gt;setDatabaseDefaults();
		pMesh-&amp;gt;setColorIndex(2);

		// 添加到当前空间
		AcDbBlockTableRecordPointer pBtr(acdbCurDwg()-&amp;gt;currentSpaceId(), AcDb::kForWrite);
		if (pBtr.openStatus() != Acad::eOk) {
			delete pMesh;
			return;
		}
		if (pBtr-&amp;gt;appendAcDbEntity(pMesh) != Acad::eOk) {
			delete pMesh;
			return;
		}

		// 准备顶点查找表
		AcGePoint3dArray arrVertexLookup;
		arrVertexLookup.setPhysicalLength(10000);
		arrVertexLookup.append(AcGePoint3d::kOrigin); // 占位

		// 遍历网格元素
		AcBrMesh2dElement2dTraverser meshElemTrav;
		for (AcBr::ErrorStatus ebr = meshElemTrav.setMesh(brepMesh);
			!meshElemTrav.done();
			ebr = meshElemTrav.next()) {
			if (ebr != AcBr::eOk) {
				pMesh-&amp;gt;erase();
				return;
			}

			// 获取元素
			AcBrElement2d elem;
			if (meshElemTrav.getElement(elem) != AcBr::eOk) {
				pMesh-&amp;gt;erase();
				return;
			}

			// 遍历节点
			AcBrElement2dNodeTraverser elemNodeTrav;
			for (ebr = elemNodeTrav.setElement(elem);
				!elemNodeTrav.done();
				ebr = elemNodeTrav.next()) {
				if (ebr != AcBr::eOk) {
					pMesh-&amp;gt;erase();
					return;
				}

				// 获取节点坐标
				AcBrNode node;
				if (elemNodeTrav.getNode(node) != AcBr::eOk) {
					pMesh-&amp;gt;erase();
					return;
				}

				AcGePoint3d ptNode;
				if (node.getPoint(ptNode) != AcBr::eOk) {
					pMesh-&amp;gt;erase();
					return;
				}

				// 添加顶点
				if (!arrVertexLookup.contains(ptNode)) {
					AcDbPolyFaceMeshVertex* pVert = new AcDbPolyFaceMeshVertex();
					pVert-&amp;gt;setPosition(ptNode);
					pMesh-&amp;gt;appendVertex(pVert);
					pVert-&amp;gt;close();
					arrVertexLookup.append(ptNode);
				}
			}
		}

		// 创建面记录
		for (AcBr::ErrorStatus ebr = meshElemTrav.setMesh(brepMesh);
			!meshElemTrav.done();
			ebr = meshElemTrav.next()) {
			if (ebr != AcBr::eOk) {
				pMesh-&amp;gt;erase();
				return;
			}

			// 获取元素
			AcBrElement2d elem;
			if (meshElemTrav.getElement(elem) != AcBr::eOk) {
				pMesh-&amp;gt;erase();
				return;
			}

			// 收集顶点
			AcGePoint3dArray arrPts;
			AcBrElement2dNodeTraverser elemNodeTrav;
			for (ebr = elemNodeTrav.setElement(elem);
				!elemNodeTrav.done();
				ebr = elemNodeTrav.next()) {
				if (ebr != AcBr::eOk) {
					pMesh-&amp;gt;erase();
					return;
				}

				AcBrNode node;
				if (elemNodeTrav.getNode(node) != AcBr::eOk) {
					pMesh-&amp;gt;erase();
					return;
				}

				AcGePoint3d ptNode;
				if (node.getPoint(ptNode) != AcBr::eOk) {
					pMesh-&amp;gt;erase();
					return;
				}

				arrPts.append(ptNode);
			}

			// 查找顶点索引
			int nV0 = 0, nV1 = 0, nV2 = 0, nV3 = 0;
			arrVertexLookup.find(arrPts[0], nV0);
			arrVertexLookup.find(arrPts[1], nV1);
			arrVertexLookup.find(arrPts[2], nV2);
			if (arrPts.length() == 4) {
				arrVertexLookup.find(arrPts[3], nV3);
			}

			// 创建面记录
			AcDbFaceRecord* pFace = new AcDbFaceRecord(nV0, nV1, nV2, nV3);
			if (pMesh-&amp;gt;appendFaceRecord(pFace) != Acad::eOk) {
				delete pFace;
				pMesh-&amp;gt;erase();
				return;
			}
			pFace-&amp;gt;close();
		}

		pMesh-&amp;gt;close();
	}
 &lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 20 May 2025 06:48:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13639630#M6</guid>
      <dc:creator>1127204185</dc:creator>
      <dc:date>2025-05-20T06:48:58Z</dc:date>
    </item>
    <item>
      <title>Betreff: Compilation failed</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13640406#M7</link>
      <description>&lt;P&gt;Please post the compiler/linker errors or the whole project.&lt;/P&gt;</description>
      <pubDate>Tue, 20 May 2025 13:23:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13640406#M7</guid>
      <dc:creator>tbrammer</dc:creator>
      <dc:date>2025-05-20T13:23:32Z</dc:date>
    </item>
    <item>
      <title>Betreff: Compilation failed</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13641411#M8</link>
      <description>&lt;P&gt;Thank you for your help!&lt;/P&gt;</description>
      <pubDate>Wed, 21 May 2025 01:01:51 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13641411#M8</guid>
      <dc:creator>1127204185</dc:creator>
      <dc:date>2025-05-21T01:01:51Z</dc:date>
    </item>
    <item>
      <title>Re: Compilation failed</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13641589#M9</link>
      <description>&lt;P&gt;your using brep,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;//#define _BREP_SUPPORT_					//- Support for the BRep API&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;should be&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;#define _BREP_SUPPORT_					//- Support fo&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;you may have to include the path to the brep sdk in your project, I didn't check that&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 May 2025 03:46:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13641589#M9</guid>
      <dc:creator>daniel_cadext</dc:creator>
      <dc:date>2025-05-21T03:46:37Z</dc:date>
    </item>
    <item>
      <title>Betreff: Compilation failed</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13642206#M10</link>
      <description>&lt;P&gt;I get the compiler error:&lt;/P&gt;
&lt;P&gt;error C2664: 'iterator AcBrMesh2dFilter::insert(const value_type &amp;amp;)': cannot convert argument 1 from 'std::pair&amp;lt;const AcBrEntity *,AcBrMesh2dControl&amp;gt;' to 'const value_type &amp;amp;'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Solution: replace the line&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;mf.insert(make_pair(pMeshEnt, mc));&lt;/LI-CODE&gt;
&lt;P&gt;with&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;mf.insert(::make_pair(pMeshEnt, mc));  // TB add :: to use global scope&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is a tricky one.&amp;nbsp;&lt;SPAN&gt;In your source&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;acrxEntryPoint.cpp you wrote&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;using namespace std;&lt;/LI-CODE&gt;
&lt;P&gt;Which causes the line&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;mf.insert(make_pair(pMeshEnt, mc));&lt;/LI-CODE&gt;
&lt;P&gt;To use &lt;FONT face="courier new,courier"&gt;std::make_pair()&lt;/FONT&gt;.&amp;nbsp; But&amp;nbsp;brmesh2d.h defines the&amp;nbsp; function that is required here:&lt;/P&gt;
&lt;LI-CODE lang="cpp"&gt;inline pair
make_pair(const AcBrEntity*&amp;amp; entity, const AcBrMesh2dControl&amp;amp; control)
{ return pair(entity, control); }&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 May 2025 09:21:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13642206#M10</guid>
      <dc:creator>tbrammer</dc:creator>
      <dc:date>2025-05-21T09:21:34Z</dc:date>
    </item>
    <item>
      <title>Betreff: Compilation failed</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13647311#M11</link>
      <description>&lt;P&gt;1&amp;gt;acrxEntryPoint.obj : error LNK2019: 无法解析的外部符号 "public: __cdecl AcBrMesh2dControl::AcBrMesh2dControl(void)" (??0AcBrMesh2dControl@@QEAA@XZ)，函数 "void __cdecl `dynamic initializer for 'AcBrMesh2dControlDefault''(void)" (??__EAcBrMesh2dControlDefault@@YAXXZ) 中引用了该符号&lt;BR /&gt;1&amp;gt;acrxEntryPoint.obj : error LNK2019: 无法解析的外部符号 "public: virtual __cdecl AcBrMesh2dControl::~AcBrMesh2dControl(void)" (??1AcBrMesh2dControl@@UEAA@XZ)，函数 "void __cdecl `dynamic atexit destructor for 'AcBrMesh2dControlDefault''(void)" (??__FAcBrMesh2dControlDefault@@YAXXZ) 中引用了该符号&lt;BR /&gt;Thank you, there's still this question.&lt;/P&gt;</description>
      <pubDate>Sat, 24 May 2025 00:12:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13647311#M11</guid>
      <dc:creator>1127204185</dc:creator>
      <dc:date>2025-05-24T00:12:32Z</dc:date>
    </item>
    <item>
      <title>Betreff: Compilation failed</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13697126#M44052</link>
      <description>&lt;P&gt;Sorry for very late reply. Your project compiles and links ok for me.&lt;/P&gt;
&lt;P&gt;If you have set&lt;FONT face="courier new,courier"&gt;&amp;nbsp;#define _BREP_SUPPORT_&lt;/FONT&gt;&amp;nbsp; before&amp;nbsp;&lt;FONT face="courier new,courier"&gt;#include "arxHeaders.h"&lt;/FONT&gt;&amp;nbsp;in your stdafx.h all required BREP libs should be linked.&lt;/P&gt;
&lt;P&gt;Try to set the project setting Linker-&amp;gt;General-&amp;gt;Show Progress to /VERBOSE:lib and watch the linker output.&lt;BR /&gt;I my case the ARX SDK dir is "X:\ObjectARX 2024" and the output looks like this:&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;1&amp;gt;    Searching X:\ObjectARX 2024\\lib-x64\axdb.lib:
1&amp;gt;    Searching X:\ObjectARX 2024\\utils\brep\lib-x64\acgex24.lib:    &amp;lt;---
1&amp;gt;    Searching X:\ObjectARX 2024\\utils\brep\lib-x64\acbr24.lib:     &amp;lt;---
1&amp;gt;    Searching X:\ObjectARX 2024\\lib-x64\acdbmgd.lib:
1&amp;gt;    Searching X:\ObjectARX 2024\\lib-x64\aNav.lib:
1&amp;gt;    Searching X:\ObjectARX 2024\\lib-x64\AcTc.lib:
1&amp;gt;    Searching X:\ObjectARX 2024\\lib-x64\AcTcUi.lib:
1&amp;gt;    Searching X:\ObjectARX 2024\\lib-x64\AcFdUi.lib:
1&amp;gt;    Searching X:\ObjectARX 2024\\lib-x64\AcFdEval.lib:
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Jun 2025 07:19:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/compilation-failed/m-p/13697126#M44052</guid>
      <dc:creator>tbrammer</dc:creator>
      <dc:date>2025-06-25T07:19:56Z</dc:date>
    </item>
  </channel>
</rss>

