基本上我想把一个包含一堆经度和纬度的excel文件导入到autocad中。我尝试使用多点工具,并将它们粘贴到命令行中,使用pointnording和easting,但似乎不起作用。有什么想法吗?
发布于 2019-08-27 03:43:44
Yep :)您要做的就是将一个so调用的SCR文件推送到Autocad中。这就是你需要手动输入到命令行中的所有东西。如果您的excel输出具有相同的格式,则可以很好地执行此操作。通常“不会编程”的人会强迫Excel用autocad命令制作表格,这样就可以逐点完成这项工作。然后,他们在Excel中复制并粘贴到文本编辑器中,将其保存到以.SCR结尾的文件中,然后使用该文件。顺便说一句,这是一个非常丑陋的解决方案。Excel有VBA,Autocad有VBA!如果您希望使用excel驱动autocad或autocad驱动器excel,则取决于您的首选项。两者都有可能。我试过了两种方法。两者都有点差;)在我看来,最好的方法是将数据存储在一个简单的csv文件中。然后,您只需调用vba或lisp或任何例程来完成此工作。Libre Office非常适合处理CSV。无论如何,如果没有任何适当的重新格式化,只是将数据爆炸到autocad是不会起作用的。要测试您的excel内容,请将要使用的一行复制到acad命令行中。如果这让你大喊大叫,那么你知道你错了。实际上,how to write script scr files文件就是一个纯文本文件,它包含了您需要手动输入才能得到相同结果的所有内容。在命令行中输入"SCRIPT“以加载此纯文本文件。愚蠢的是,里面没有逻辑功能。有关更多信息,请查看Autocad DIESEL。不是开玩笑的:)他们这样叫它。如果你知道的话,autocad肯定有“几个”内置的编程功能。DIESEL LISP Whatever.NET C C++ Javascript (不开玩笑!)这里是一个用autocad驱动excel的VBA示例:)该示例将从r:\mapp1.xls获取excel文件,打开“坐标”表,并绘制像来自地狱的forrester一样的树;)
Public Sub EXCEL_Import()
Dim blo As AcadBlockReference
Dim EPunkt(0 To 2) As Double
Dim wb As Excel.Workbook
Dim WTAB As Excel.WorkSheet
Dim SHEETNAME as string
Dim BLOCKNAME as string
SHEETNAME="coordinates"
BLOCKNAME="TREE"
Set wb = Excel.Workbooks.Open("r:\mappe1.xls")
Set WTAB = wb.Worksheets(SHEETNAME)
while WTAB.Cells(i, 1)<>""
EPunkt(0) = WTAB.Cells(i, 1): EPunkt(1) = WTAB.Cells(i, 2)
EPunkt(2) = 0
Set blo = ThisDrawing.ModelSpace.InsertBlock _
(EPunkt, BLOCKNAME, 1#, 1#, 1#, 0)
wend
wb.Close 'Datei schließen nicht vergessen
End Sub只是忘了提一下。要将Autocad连接到excel,必须添加对Excel的引用。(菜单栏工具/参考资料)。在对话框中查找excel。Excel有点特殊,引用的不是dll,它是EXCEL.EXE!如果没有列出,您可以在那里浏览它。当然,如果ACAD是64位的,你的excel也应该是64位的!这就是为什么我建议使用CSV文件。愚蠢的是,我手头没有容易理解的工作示例。同时,它们更“高级”--不管它如何帮助和获得一些乐趣:)
https://stackoverflow.com/questions/57617304
复制相似问题