老师,您好
请问一下,在导入.las格式的数据时,发现每导入一个las文件,就弹出一个对话框要选择。可是我们一次要导入100多个las文件,可以只用确认一次就把所有的las文件都导入?
您是如何导入的?如果是编程的话,直接通过IPointCloudImporter就可以设置这些选项,应该是不会有这么一个窗口的。
我是用的MS自带的Attach Point Cloud功能导入的,没有自己编写代码。
另外,参数Bentley::DRange3d range的设置,我试了一些值,但是MS直接就崩溃了。
EditElementHandle eeh; PointCloudPropertiesPtr pcpPtr = PointCloudProperties::Create(); DPoint3dCR lower = { 0, 0, 0 }; DPoint3dCR hight = { 100, 100, 100 }; DRange3d pcRange; pcRange.InitFrom(lower, hight); if (SUCCESS == PointCloudHandler::CreatePointCloudElement(eeh, *ACTIVEMODEL, *pcpPtr, pcRange)) { eeh.AddToModel(); }
试试把这两个.lib库加上:mdlbltin.lib,RmgrTools.lib。DPoint3dCR hight = { 100, 100, 100 };太小了,代码里边用的是uor单位,100相当于是0.01m
Answer Verified By: nian chen
谢谢郭老师,我刚试了一下,100m还是一样的崩溃。可是帮我看一下?感谢。
EditElementHandle eeh; PointCloudPropertiesPtr pcpPtr = PointCloudProperties::Create(); DPoint3dCR lower = { 0, 0, 0 }; DPoint3dCR hight = { 100* UNIT_UOR_M, 100* UNIT_UOR_M, 100* UNIT_UOR_M }; DRange3d pcRange; pcRange.InitFrom(lower, hight); if (SUCCESS == PointCloudHandler::CreatePointCloudElement(eeh, *ACTIVEMODEL, *pcpPtr, pcRange)) { eeh.AddToModel(); }
PointCloudPropertiesPtr您创建完了任何属性都没赋值,至少给个点云的文件路径,Create有三个重载呢,PointCloudPropertiesPtr Create (DgnDocumentMonikerR moniker, DgnModelRefCR modelRef)这个重载类型可接受一个点云文件路径的参数DgnDocumentMonikerR ,试试这个创建函数。
郭老师,请问一下,我现在点云可以导入进去了,参数Bentley::DRange3d range设置的是100m。可是我我想弄明白这个参数的设置具体有什么要求?比如我的单个las文件有大也有小的,这个参数对点云的显示有没有影响?
文档中的解释如下,您可以设置几个不同的值看一下具体的效果,例如1m,10m,100m,观察一下看看有什么不一样的。
嗯,文档中的解释我已经看过了,我试了这几个值,没有发现明显的差别。
点云导入后会新生成一个元素,您看一下是不是这个新生成的元素属性里边的Range会不会受这个值的影响。
我看了,不管我设置什么值,都没有影响。