乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 124|回复: 6

VB调用LISP程序

[复制链接]

84

主题

543

帖子

12

银币

中流砥柱

Rank: 25

铜币
886
发表于 2010-6-8 00:00:00 | 显示全部楼层 |阅读模式
请教各位高手,首先当我们打开CAD之后,然后运行一个VB程序来调用一个LISP程序如何实现!!!
回复

使用道具 举报

75

主题

306

帖子

10

银币

中流砥柱

Rank: 25

铜币
606
发表于 2010-6-8 08:32:00 | 显示全部楼层
伪代码
set cad = getobject()
cad.ActiveDocument.sendcommond "lisp命令"
回复

使用道具 举报

84

主题

543

帖子

12

银币

中流砥柱

Rank: 25

铜币
886
发表于 2010-6-8 17:50:00 | 显示全部楼层
楼上的朋友能否具体一点啊,VB我不熟
回复

使用道具 举报

75

主题

306

帖子

10

银币

中流砥柱

Rank: 25

铜币
606
发表于 2010-6-9 00:17:00 | 显示全部楼层
第一步:在VBAIDE里先定义 GetCurveLen宏

Public Sub GetCurveLen()
    '利用VLisp计算曲线长度
    Dim LispPath As String
    LispPath = "c:\Getlen.LSP" 'Lisp文件的路径
    Dim tempS As String, tempR As Double
    tempS = ThisDrawing.GetVariable("users5")
    tempR = ThisDrawing.GetVariable("userr5")
    Dim obj As AcadEntity, pt As Variant
    ThisDrawing.Utility.GetEntity obj, pt, "选择对象:"
    ThisDrawing.SetVariable "users5", obj.Handle  '将对象的句柄放在系统变量里
    ThisDrawing.SendCommand "(load " & Chr(34) & Replace(LispPath, "\", "/") & Chr(34) & ")" & vbCr
   
    MsgBox "曲线长度为:" & CStr(ThisDrawing.GetVariable("userr5")) '到userr5里取值
   
    ThisDrawing.SetVariable "users5", tempS '还原系统变量
    ThisDrawing.SetVariable "userR5", tempR '还原系统变量
End Sub

第二步:复制下面代码存为*.lsp文件,注意文件名、路径要与上面的lisppath变量相一致
      
       (defun GetLen( / obj len)
  ;;功能:计算曲线长度
  (vl-load-com)
  (setq obj (vlax-ename->vla-object (handent (getvar "users5"))));;把对对象的句柄放在users5
  (setq len (vlax-curve-getDistAtParam obj (vlax-curve-getendParam obj)))
  (setvar "userr5" len);;把对对象的长度放在userr5
  )
(GetLen)





然后运行 GetCurveLen宏


这是一个VBA的例子,VB操作与此类似
回复

使用道具 举报

84

主题

543

帖子

12

银币

中流砥柱

Rank: 25

铜币
886
发表于 2010-6-9 22:45:00 | 显示全部楼层
对VBA不熟,看不明白,不过还是谢谢你的热心帮助。。。
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2010-6-10 08:36:00 | 显示全部楼层
楼主有点搞笑,VB不熟,VBA也不熟,那还谈什么VB调用lisp啊??
回复

使用道具 举报

84

主题

543

帖子

12

银币

中流砥柱

Rank: 25

铜币
886
发表于 2010-6-10 18:38:00 | 显示全部楼层

以前一直用VB编写其它东东。。。并不是完全不会VB。。。

我以前没有用过VB编写CAD,但会一点LISP,所以有了此想法。。。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-1 13:30 , Processed in 1.499509 second(s), 84 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表