BenE 发表于 2022-7-6 08:54:36

超级新手,第一个Lisp Attem

我在C3D中遇到了一个问题,我必须一次将数十万个点转换为ACAD点。每个点都需要点描述。我想知道如何从原始的_AeccCreatePtConvertAdeskPts中获取代码,并添加一个小循环,为我按enter键,这样除了按enter键50万次之外,我还可以做其他事情。
 
从曲面中提取点,点的数量列在曲面特性中。我不知道最好的方法是什么,但我在想,我也许可以做一些像insert这样的事情
 
你可以正常运行你的命令。然后,当您希望它继续“按”enter键时,您可以启动“RepeatEnter”命令(注意单引号前缀以透明方式启动它)。只需继续按enter键,直到命令完成。“RepeatEnter”命令将首先询问您需要多少个输入,然后在命令完成或已发送指定数量的输入时停止发送输入。
 
不过请注意:如果您启动的命令需要的不仅仅是enter,这可能会运行到无限循环中。尤其是使用RepeatEnter lisp命令。如果您启动的原始命令本身也是lisp命令,那么它将不起作用。

David Bethel 发表于 2022-7-6 09:09:36

David Bethel-我现在无法发布dwg。我正在等待它安装C3D 2012。我们正在导入LAS文件(激光雷达),从LAS创建三角网曲面,从三角网中提取点,将点导出到*。csv。
 
irneb-谢谢你的样品。我得花点时间来弄清楚这段代码的含义。RepeatEnter#是否可以从曲面包含的点数中获取输入数?

irneb 发表于 2022-7-6 09:10:43

遗憾的是,没有。RepeatEnter只要求用户指定最多发送多少条输入。要计算出需要多少点才能获得对象的数据并对其进行计数。不幸的是,我没有C3D,所以我不确定你说的曲面是指Vanilla网格对象还是其他什么。也许其他有C3D的人可以告诉你。

BenE 发表于 2022-7-6 09:19:04

我们一直在使用激光雷达,为什么要将las文件转换为曲面,然后写出点,为什么不只是从生成激光雷达的位置创建csv,或者我遗漏了什么。我们的GIS地图导出有很多导出数据的方法,您必须记住使用哪种方法。

irneb 发表于 2022-7-6 09:28:56

基本上,我使用激光雷达数据创建曲面,以切割横截面进行水力分析。每个项目可能使用数千万个激光雷达点。激光雷达数据不在我需要的坐标系中,所以必须对其进行转换。这就是问题所在。我已经在ArcMap中完成了转换,这是一个非常缓慢的过程。在CAD中,这个过程并不糟糕,但在转换或程序崩溃之前,我必须从激光雷达表面提取数据,并仅从这些提取的数据(图纸中没有激光雷达瓷砖)构建新的表面。我认为它试图转换整个激光雷达瓷砖组,而不是仅转换表面。
 
我找到了解决输入问题的方法。我刚刚关闭了“浏览”中“点->命令”下的点描述提示。我仍然对创建这个LISP感兴趣,因为这是一个笨拙的解决方法。
 
IRNEB的RepeatEnter代码运行良好,我想我已经解决了。我想知道如何将该代码(或类似的代码)插入到原始AECC命令的副本中,以使其透明运行,但我无法找到代码文件。

BIGAL 发表于 2022-7-6 09:35:07

我可以想象它在一个ARX/DLL中,所以你只能得到编译后的版本。特别是因为我的代码可以处理它,所以它不太可能是lisp例程。
 
编辑:在所有输入之后是否需要您输入一些内容?如果没有,那么你可以简单地使用我的重复输入例程。它只需发送enters,直到第一个命令完成。否则,你可以修改我的RepeatEnter#来发送一个固定的数字,只需按下一个工具栏按钮(或类似按钮),而不是每次都键入整个内容。

BenE 发表于 2022-7-6 09:40:09

我不清楚。我无法在命令中使用您的代码。我刚刚将其作为LISP独立运行,它运行得很好!

irneb 发表于 2022-7-6 09:52:26

BenE 发表于 2022-7-6 09:58:24

I wasn't clear.I haven't been able to use your code within the command.I have just run it as a LISP independently, and it works nicely!
页: [1]
查看完整版本: 超级新手,第一个Lisp Attem