Autocad自定义
你好我想写一个vb6.0程序来打开AutoCad应用程序&一个新的绘图。
我已经为图形生成编写了AutoLisp/visualLisp例程。
我想知道在AutoCad中运行AutoLisp/visualLisp例程以生成图形的VB 6.0代码。根据用户在userfrom中提供的输入,用户可以请任何人帮忙吗?
当做
阳光明媚的德迪亚 您需要使用SendCommand方法:
ThisDrawing.SendCommand "(load " & Chr(34) & "C:\\test.lsp" & Chr(34) & ") "
但是有一个问题-VB不会注意到AutoLISP代码的执行已经完成,所以需要一个变通方法来等待,直到恢复自己的代码。此前曾对此问题进行过讨论;我会尽力帮你定位的。 非常感谢。
嗨Mircea,
你能详细说明一下你到底想表达什么吗
你给的代码是vb6.0代码,请详细说明我要如何使用它
当做
阳光明媚的德迪亚 这是Visual Basic 6代码,因为您在第一篇文章中说明了此版本。
该代码只会将AutoLISP例程加载到当前图形中-您可以通过另一个SendCommand调用或仅通过在所述LSP文件末尾调用来调用它。
要使用它,只需将示例路径替换为您的路径。 嗨Mircea,
谢谢你的解释
在你谈论另一个帖子之前,如果你找到了,请告诉我
我还将把变量值从VB6用户窗体传递到AutoLISP以创建图形,然后在创建图形后,将该区域返回到VB6.0用户窗体
正如我在第一篇文章中所说,我还需要VB 6.0代码来打开Autocad和一个新的绘图
如果你也能帮我的话
非常感谢你的帮助
:拇指支撑:
当做
阳光明媚的德迪亚 我还没有找到那个讨论,稍后我会再试一次;我记得很清楚的一个细节是,这个解决方案是由主持人Fuccaro提出的。
为此,您可以使用临时文件,也可以创建并调用带有参数的AutoLISP函数:
ThisDrawing.SendCommand "(load " & Chr(34) & "C:\\MyLISPFile.lsp" & Chr(34) & ") "
ThisDrawing.SendCommand "(MyFunction " & (CStr Param1st) & " " & (CStr Param2nd) & ") "
我假设您希望将在AutoCAD中处理的结果转换为Visual Basic表单。为此,应再次使用临时文件或AutoCAD的用户定义系统变量之一。
这是涵盖了很多次之前-请在论坛上搜索。 你能告诉我创建临时文件意味着什么吗?我将把11个变量从VB 6.0用户窗体传递到Autolisp以创建图形,然后将5个变量在Autolisp中计算面积。这5个变量将在VB6.0用户窗体中显示,因为我将把VB6.0用户窗体中的所有这些详细信息传递到excel文件中,以供用户打印出来
当做
阳光明媚的德迪亚 临时文件是在系统的临时文件夹中创建的文件;是首选解决方案,因为它比较安静。
要在AutoLISP中查找此文件夹,请执行以下操作:
分别在Visual Basic中:
3
您最多可以定义5个用户系统变量来存储实际值USERR1到USERR5;对于更多,可以将它们转换为字符串,并使用制表符连接到单个字符串;对于最后一种情况,使用USERS1进行传输。 在这里;抱歉耽搁了。
页:
[1]