CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
查看: 7487|回复: 19

浩辰CAD 2010的VLISP接口简单介绍

[复制链接]
发表于 2010-5-14 09:24 | 显示全部楼层 |阅读模式
Visual LISP语言可以访问CAD的对象模型, 不仅使程序开发变得更容易,更快捷,还提供了新的LISP语言应用功能。例如,可以使用VLISP以LISP语言访问ActiveX对象。还可以通过VLISP与其他支持ActiveX方法的Windows应用程序进行交互。
; B% `0 K7 z# V
" m% [2 H, |( x2 @- I! a* q5 A5 |1、直接访问ActiveX对象与标准LISP对比
/ W% n) z( w' e6 }
! i6 b3 k3 u$ Z; o; F4 x我们把标准Lisp和使用VLISP直接访问ActiveX对象做一个简单比较: ! e6 B, w9 ^# y$ p0 ?4 W" Z# ~5 d
9 u. U/ V* O' @5 ~0 G! x% g8 z6 N: w

: Q  K/ O' \+ S& {7 R% L" _2 P8 {标准LISP语言:
+ G" Z3 Z2 ~* A3 b' J* |- S
5 J  E1 B4 B1 {. L4 p(setq circle-entity (car (entsel)))
. R1 O! D2 ]; p
3 g1 a0 |4 y5 b0 Y, b2 s(setq radius (cdr (assoc 40 (entget circle-entity)))) 4 G3 f0 u' O$ y( y0 k/ [1 t
/ _9 l" E; l1 ]) m7 c/ K% \7 n4 g! J
使用VLISP直接访问ActiveX对象
, K: T( N- u, G' h. z3 q* J; V2 A5 ^- C! X, W- f* h
(vlax-ename->vla-object circle-entity)
* k" q) k% q  _- S2 F: @: D" R
3 g2 S2 y; g# b(setq radius (vla-get-radius circle-object)) 9 N  D' L/ g& ^+ [5 P
: L- G; J- y4 c# E
对比可以发现直接访问ActiveX对象更方便直观。从效率方面来讲,直接访问ActiveX对象避免了分配大量内存,生成冗余的列表,从而运行更快。
! X" i/ s% e/ S3 m( n
0 d$ Y# D2 K6 x2、加载VLISP工程的方法
+ Z3 h  x1 W) X7 I. [4 b( p3 v' F4 `6 V5 \& m
浩辰CAD2010不仅提供了与AutoCAD兼容的VLISP接口,还可以直接加载AutoCAD编译好的VLISP工程(VLX、FAS文件),省去了移植工作的烦恼;同时也可以直接利用互联网上提供的大量免费的VLISP工程,从而更大程度上节约设计时间。 . N4 Z/ j7 P# ^& S; a& ~

4 Q2 z# I( P# n0 B& D1)、可以调用APPLOAD命令,像加载LISP文件一样加载VLISP工程(VLX、FAS文件)。 6 K* x1 T' W4 n

+ Q" R! q5 x% u: Z+ Z6 x2)、可以直接在命令行中书写形如(load “c:\\Test.vlx”) (load “c:\\Test.fas”)的LISP语句完成加载。
  m, O1 B  N1 z+ s5 @2 r+ O7 i5 D& v) V/ w# T
3)、直接在其他程序中,像浩辰CAD发送LISP语句完成加载。 $ f( F: t9 z: K1 O6 F1 X

" R0 B' ]' E; N3、VLISP加载实例 - x+ T7 }' E9 L1 i* {7 p3 u

$ E: q' x. R  b! q贱人工具箱是网上流传很广的CAD免费小工具,下面就以贱人工具箱5.2版为例,演示一下浩辰CAD是如何加载VLISP程序的。
! s7 I% J+ t( G. g0 }: d' x& |8 ~$ P& K( X- `, u8 r
在工具菜单选择加载应用程序选项,可以看到浩辰CAD2010可以支持所有的CAD二次开发程序的加载,这里选择VLISP的程序VLX来加载贱人工具箱。  7 G% k, P% l9 ~6 q
  , j$ b/ R9 ?- j, }8 _
6 \/ D& ?: c1 J+ H7 U8 q7 D2 z

/ ]9 [" H: c& i
% r- \! p+ |- [$ E/ k2 z: I: V选择贱人工具箱的程序  , ~$ c8 ]! w. l! V1 A8 @0 f$ l& W: ^) R
  - A5 N) a! @0 l

5 ]! p& N  V* V: J% Q$ Y6 \加载后根据命令行的提示启动贱人工具箱
  [1 l7 E0 g  A0 P" z2 s/ k  L0 I- H  z; w+ C- `  d: u7 u
) [* h. d/ q1 x, m  n
输入Y回车,弹出贱人工具箱的界面: ) P0 g+ ^( e& W- d6 D! b. p

: {& R' L  g' V$ s! Q! r贱人工具箱就可以在浩辰CAD上使用了,正因为浩辰CAD2010优秀的二次开发接口,类似贱人工具箱这样本来是为AutoCAD开发的插件都可以直接在浩辰CAD2010上进行加载运行,为用户提供了真正的便利。 : a3 h3 h7 \& D* {& u. m& A. `
VLX和FAS的直接加载运行是浩辰CAD 2010版的重大技术突破,其他同类的CAD都无法实现。当然,由于VLISP函数以及命令参数还不能与AutoCAD100%兼容,还不能保证所有的VLX或FAS程序加载后所有功能都能正常运行,我们的开发人员正在对一些常用的工具进行测试,并逐步完善VLISP与AutoCAD兼容性。
) F% q5 d5 B) |# W

0 [6 r; ^1 r- g7 _[ 本帖最后由 小叶舟 于 2010-5-14 10:43 编辑 ]
发表于 2010-5-14 11:53 | 显示全部楼层
浩辰CAD2010的VLISP接口为用户提供了真正的便利。
发表于 2010-5-15 22:43 | 显示全部楼层
原本是为AutoCAD开发的一些插件都可以直接在浩辰CAD2010上进行加载运行,所以浩辰这种二次开发的接口确实适用。
发表于 2010-5-16 15:55 | 显示全部楼层
Visual LISP语言还可以访问CAD的对象模型呢,这个功能很好,使用起来便捷多了。
发表于 2010-5-17 12:04 | 显示全部楼层
是在说浩辰CAD的2010版的VLISP接口呀,我正在用,还不错。
发表于 2010-5-18 06:33 | 显示全部楼层
浩辰CAD2010版的改进确实很大,在提供了与AutoCAD兼容的VLISP接口的同时,能直接加载AutoCAD编译好的VLISP工程。
发表于 2010-5-18 10:29 | 显示全部楼层
我喜欢用浩辰CAD的2010版,它能节约好多的设计时间呢。
发表于 2010-5-18 15:26 | 显示全部楼层
通过这个贴子,我学习了一些东西,楼主了辛苦。
发表于 2010-5-20 10:03 | 显示全部楼层
这次接口的二次开发,给大家带来了惊喜。
发表于 2010-5-23 09:16 | 显示全部楼层
这个接口功能简单易学。
发表于 2010-5-23 23:00 | 显示全部楼层
看似简单的接口功能,能开发出来却不是件容易的事。
发表于 2010-5-24 12:21 | 显示全部楼层
国内软件在不断走向成熟,支持它们。
发表于 2010-5-24 13:04 | 显示全部楼层
就直接访问ActiveX对象来说,标准Lisp不仅分配大量内存,还会生成冗余的列表,影响运行速度。
发表于 2010-5-24 15:31 | 显示全部楼层
浩辰软件加载VLISP工程的方法还挺多。
发表于 2010-5-24 17:06 | 显示全部楼层
VLISP与AutoCAD如果能更好的兼容,必会大大提高工作效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2025-11-28 16:56

CAD设计论坛,为工程师增加动力。

© 2005-2025 askcad.com. All rights reserved.

快速回复 返回顶部 返回列表