百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

AutoCAD LISP开发神器:DOSLIB cad lisp程序

xsobi 2024-12-22 21:34 1 浏览

各位AutoCAD的程序猿,有没有在为LISP语言的轻便灵活而叹服的同时,痛感其系统处理功能的薄弱!Autodesk深感其哀,适时推出Visual LISP,算是暂时安慰了程序猿。然而,贴心好用的函数库,谁会嫌多?尤其要讨好用户,编写大量的华丽好用的用户界面,能把人累成狗。谁来救你?

于是,歪果仁的DOSLIB开发神器来了

DOSLIB是 McNeel 出品的AUTOCAD二次开发工具,可供开发者在LISP程序中调用,大大减轻编程工作量,并扩展程序功能。其包含12大类高级函数库可供调用:

1.Drive functions (驱动器函数)

2.Path functions (系统路径处理函数)

3.Directory functions (目录管理函数)

4.File functions(文件系统处理函数)

5.Printer functions (打印函数).

6.Configuration functions (配置函数)

7.Process functions (外部进程函数)

8.User interface functions (用户界面函数)

9.String functions(字符串处理函数)

10.Math functions(数学函数)

11.AutoCAD functions(AUTOCAD系统函数)

12.System and other functions(操作系统和其他函数)

DOSLIB以ARX封装,免费使用,只需声明出处。随软件附有英文版说明,列举大量应用示例,使用十分方便。

虽然LISP早已进入Visual 时代,其开发函数和DOSLIP其提供的函数有很大雷同,但DOSLIB在系统功能方面仍具有独特的表现,借助DOSLIB丰富的函数库,可以让LISP得以突破了自身在内核应用的局限,使开发大型LISP软件成为可能。

早期我十分慎用DOSLIB,主要担心 McNeel提供的免费午餐不能持续,AUTOCAD以每年一版的速度推出,DOSLIB能否跟得上。一旦停滞,你使用DOSLIB开发的软件就相应停止在相应的版本上,无法在高版本AUTOCAD上使用。因此,在编写CAD软件过程中,我一直使用后备的方法调用DOSLIB,即使调用不成功,除了在界面有所影响外,软件主体功能仍能使用。后来对交互界面的要求不断提高,开始大量使用DOSLIB,感觉轻松不少,软件也漂亮了许多。

到目前为止,DOSLIB仍紧跟AUTOCAD更新步伐,当前最新版本为9.0.1,可在AUTOCAD2007-2017版本下使用,大家可登录McNeel官方网站免费下载,推荐LISP开发者使用。

相关推荐

js向对象中添加元素(对象,数组) js对象里面添加元素

一、添加一个元素对象名["属性名"]=值(值:可以是一个值,可以是一个对象,也可以是一个数组)这样添加进去的元素,就是一个值或对象或数组...

JS小技巧,如何去重对象数组?(一)

大家好,关于数组对象去重的业务场景,想必大家都遇到过类似的需求吧,这对这样的需求你是怎么做的呢。下面我就先和大家分享下如果是基于对象的1个属性是怎么去重实现的。方法一:使用.filter()和....

「C/C++」之数组、vector对象和array对象的比较

数组学习过C语言的,对数组应该都不会陌生,于是这里就不再对数组进行展开介绍。模板类vector模板类vector类似于string,也是一种动态数组。能够在运行阶段设置vector对象的长度,可以在末...

如何用sessionStorage保存对象和数组

背景:在工作中,我将[{},{}]对象数组形式,存储到sessionStorage,然后ta变成了我看不懂的形式,然后我想取之用之,发现不可能了~记录这次深刻的教训。$clickCouponIndex...

JavaScript Array 对象 javascript的array对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

JavaScript中的数组Array(对象) js array数组

1:数组Array:-数组也是一个对象-数组也是用来存储数据的-和object不同,数组中可以存储一组有序的数据,-数组中存储的数据我们称其为元素(element)-数组中的每一个元素都有一...

数组和对象方法&数组去重 数组去重的5种方法前端

列举一下JavaScript数组和对象有哪些原生方法?数组:arr.concat(arr1,arr2,arrn);--合并两个或多个数组。此方法不会修改原有数组,而是返回一个新数组...

C++ 类如何定义对象数组?初始化数组?linux C++第43讲

对象数组学过C语言的读者对数组的概念应该很熟悉了。数组的元素可以是int类型的变量,例如int...

ElasticSearch第六篇:复合数据类型-数组,对象

在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON...

第58条:区分数组对象和类数组对象

示例设想有两个不同类的API。第一个是位向量:有序的位集合varbits=newBitVector;bits.enable(4);bits.enable([1,3,8,17]);b...

八皇后问题解法(Common Lisp实现)

如何才能在一张国际象棋的棋盘上摆上八个皇后而不致使她们互相威胁呢?这个著名的问题可以方便地通过一种树搜索方法来解决。首先,我们需要写一个函数来判断棋盘上的两个皇后是否互相威协。在国际象棋中,皇后可以沿...

visual lisp修改颜色的模板函数 怎么更改visual studio的配色

(defunBF-yansemokuai(tuyuanyanse/ss)...

用中望CAD加载LISP程序技巧 中望cad2015怎么加载燕秀

1、首先请加载lisp程序,加载方法如下:在菜单栏选择工具——加载应用程序——添加,选择lisp程序然后加载,然后选择添加到启动组。2、然后是添加自定义栏以及图标,方法如下(以...

图的深度优先搜索和广度优先搜索(Common Lisp实现)

为了便于描述,本文中的图指的是下图所示的无向图。搜索指:搜索从S到F的一条路径。若存在,则以表的形式返回路径;若不存在,则返回nil。...

两个有助于理解Common Lisp宏的例子

在Lisp中,函数和数据具有相同的形式。这是Lisp语言的一个重大特色。一个Lisp函数可以分析另一个Lisp函数;甚至可以和另一个Lisp函数组成一个整体,并加以利用。Lisp的宏,是实现上述特色的...