lisp画靶子 visual_基于VisualLISP的AutoCAD绘图命令的二次开发_沈良翼

2009

AutoCAD

是由美国

Autodesk

公司于

20

世纪

80

年代初为

微机上应用

CAD

技术而开发的绘图程序软件包,

经过不断的

完善,

现已经成为国际上广为流行的绘图工具

AutoCAD

允许

用户定制菜单和工具栏,并能利用内嵌语言

Autolisp

Visual

Lisp

VBA

ADS

ARX

等进行二次开发

AutoCAD

是在

R2.1

本开始嵌入

LISP

语言的一个增强了针对性的子集

AutoLISP

R14

版本开始,

Autodesk

公司推出了

VisualLISP

,更进一步

方便了用户对

LISP

的使用

[1]

在日常的绘图工作中,常常需要定制些软件没有的特定

图形符号,

虽然可以使用复制或定制块的形式实现,

但将常用

命令开发成类似于

AutoCAD

的内部命令,对使用者来说是非

常有吸引力的

VisualLISP

语言可以很方便地调用

AutoCAD

的内部命

令,

在可视化的界面进行编辑,

完全可以胜任一般绘图命令的

二次开发

对话框控制语言

Dialog

Control

Language

(简称

DCL

)

也是

内置于

AutoCAD

中,

它弥补了

AutoLISP

语言在对话框功能上

的不足,但可以很方便地通过

LISP

架设与

DCL

语言对话的

桥梁

1

编程示例

[2]

使用

VisualLISP

开发

AutoCAD

的绘图命令的一般步骤是:

1.1

打开

VisualLISP

编辑器

AutoCAD

工具菜单中

AutoLISP

——

VisualLISP

编辑

即可打开

AutoCAD

软件内置的

VisualLISP

编辑器

1.2

编程过程实例

下面以一个命令开发过程为例,来说明

VisualLISP

的编

程过程

本例是为了开发一个可以直接绘制基准代号的

Vi-

sualLISP

自定义命令

(

1

)新建一个

DCL

文件

在窗口中输入以下程序代码

bm01:dialog{

label="

基准代号对话框

";

:edit_box

{

label="

";

key="sym";edit_width=1;}

:boxed_radio_row{

label="

基准代号对话框

:";

:radio_button{

label="

";key="ra1";value="1";}

:radio_button{

label="

";key="ra2";value="0";}

:radio_button{

label="

";key="ra3";value="0";}

:radio_button{

label="

";key="ra4";value="0";}

}

spacer_1;

ok_cancel;

}

(

2

)新建一个

LSP

源文件

在窗口中输入以下程序代码

基于

Visual

LISP

AutoCAD

绘图命令的二次开发

沈良翼

1

汪莉莉

2

(

1.

南通职业大学

实训中心,

江苏

南通

226007

2.

南通广播电视大学

人文科学系,

江苏

南通

226007

)

摘要:

介绍了

LISP

语言在

AutoCAD

软件中的应用过程,

并通过基准代号的二次开发命令实例进行说明,

力图展示使用

Visual

LISP

言以及对话框控制语言对

AutoCAD

二次开发的基本过程以及应用程序的加载

关键词:

Visual

LISP

DCL

AutoCAD

中图分类号:

TP391.7

文献标识码:

B

文章编号:

1672-

545X

(

2009

)

12-

0064-

02

收稿日期:

2009-

09-

25

作者简介:

沈良翼

(

1974

)

男,

江苏如皋人,

一级实习指导教师,

硕士研究生,

主要从事数控技术理论实践教学及应用;

汪莉莉

(

1975

)

女,

苏南通人,

讲师,

主要从事室内设计及计算机辅助设计教学

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.Net相关

Lucene 全文搜索 http://lucenenet.apache.org/ Memcached 分布式缓存 http://memcached.org/ selenium UI自动化测试 http://docs.seleniumhq.org/ TestDriven.Net Unit Test http://www.testdriven.net/default.aspx MySql 数据库 http://dev.mysql.com/ dotPeek 反编译 http…

linux c之((void *) - 1)是啥意思

1、问题 今天看到进程通信通过使用内存共享来实现,看到了((void *)-1),当时一脸蒙逼,不知道什么意思。 2、理解 我一开始以为是空指针减1,自己好傻逼 实际意思是((void *)-1)是把-1转换成指针0xFFFFFFFF 3、总结 当一个函数返…

Linux下安装compsoer ,并使用composer安装laravel

为什么80%的码农都做不了架构师?>>> 1、composer安装 https://getcomposer.org/download/打开composer官网。根据提示linux下可以使用php安装。 php -r "copy(https://getcomposer.org/installer, composer-setup.php);" php -r "if (ha…

AspNetCore在docker部署时遇到一个小坑

哦吼之前刚说了尝试了使用docker来部署AspNetCore应用(Asp.Net Core部署:早知道,还是docker!以及一点碎碎念),结果这才刚上班就遇到问题了 …我这项目用的数据库是Oracle,之前直接运行没啥问题,…

JS篇 学习笔记

ECMA Script API: Array.prototype.splice(start, deleteCount, value ...) 数组操作中有:push、pop、unshift左移入、shift左进出;splice不仅可以完成删除操作,而且还可以从中间插入:当deleteCount参数为0时就可以将后面的多个参…

05-散列表

数据结构和算法 基于《算法图解》—Aditya Bhargava 和《数据结构》—严蔚敏 第5章 散列表 假设你在一家杂货店上班。有顾客来买东西时,你得到一个本子中查找价格。如果本子的内容不是按字母顺序来排序的,你可能为查找苹果价格而浏览每一页&#xff0c…

疯狂ios讲义疯狂连载之实现游戏逻辑(2)

13.6.5 定义获取通道的工具方法这里所谓的通道指的是一个方块上、下、左、右4个方向上的空白方块图13.10显示了一个方块四周的通道。图13.10 方块四周的通道下面是获取某个坐标点四周通道的4个方法。程序清单codes/13/Link/Link/sources/board/FKGameService.m13.6.6 没有转折点…

linux之进程间通信--使用信号

一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号…

opencv 平面法向量_在OpenCV中绘制平面的法向量

我使用2D条形码识别3D空间中的平面,我想绘制相对于其中心的法线。这是我用来计算正常的代码def compute_normal(camera, board, bounds, frame):extrinsics, ip, op get_extrinsics(camera, frame, board, bounds)extrinsic extrinsics[0]if not extrinsic: retur…

CentOS升级Python2.7及安装pip

CentOS升级Python2.7及安装pip<?xml version"1.0" encoding"UTF-8"?> CentOS升级Python2.7及安装pip1) 升级Python2.7?1234567891011121314151617181920212223242526272829303132python -V # 查看版本&#xff1a;Python 2.6.6mkdir -p ~/Env/py…

解决Maven工程中报 Missing artifact jdk.tools:jdk.tools

2019独角兽企业重金招聘Python工程师标准>>> 解决方法&#xff1a; 在pom.xml中添加如下依赖&#xff1a; <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>…

回到地球之后,这个男人创建了Ubuntu

文 | 大东出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013&#xff09;2002 年&#xff0c;莫斯科当地时间 4 月 25 日 9 时 26 分&#xff0c;满载着补给和 3 名宇航员的“联盟-TM 号”航天飞船在“联盟 U”火箭的推进下飞往国际空间站。同行的三人中&#xff0c;年…

Hadoop完全分子式环境搭建—问题及解决办法

Hadoop完全分布式环境搭建 ps:本人是按照尚硅谷的教程搭建的&#xff0c;版本hadoop2.7&#xff0c;centos版本6&#xff0c;一台主机&#xff0c;两台从机。 一&#xff0e;版本问题 1.尽量使用hadoop版本2&#xff0c;尽量不要使用最新版本3。因为会出现无法解决的问题&…

linux c之perror和exit使用总结

一、perror介绍 perror函数用一种简单统一的方式报告错误。例如,一个程序试读一个不存在的磁盘文件,操作系统除了“出错了!”,这时,库函数首先会将代表操作出错的具体原因的错误代码保存到全局整型变量errono(在errno.h中定义),然后它再将错误提示传给用户程序。perror…

autoload.php beanbun_Beanbun: 简单开放的 PHP 爬虫框架

BeanbunBeanbun 是用 PHP 编写的多进程网络爬虫框架&#xff0c;具有良好的开放性、高可扩展性。项目地址&#xff1a;github.com/kiddyuchin.…文档地址&#xff1a;beanbun.org由来我希望有这样一个爬虫框架&#xff1a;在简单需求的情况下&#xff0c;可以用最少的代码快速建…

Andorid Binder进程间通信---总结

一、Server和Service Manager进程间通信 Service Manager进程启动时&#xff0c;已经创建了Service Manager实体对象&#xff0c;没有Service Manager本地对象。 Server首先获取了Server代理对象&#xff0c;句柄值为0。没有Server引用对象。 Server----->Service Manager S…

POJ 2135 最小费用最大流

思路&#xff1a; 源->1连费用0 流量2 其它的边 费用w 流量1 n->汇 费用0 流量2 最小费用流 搞定~ //By SiriusRen #include <queue> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 2010 #def…

06-广度优先搜索:图、队列

数据结构和算法 基于《算法图解》—Aditya Bhargava 和《数据结构》—严蔚敏 第6章广度优先搜索 6.1 简介 广度优先搜索—breadth-first search&#xff0c;BFS. 主要内容图和队列。 广度优先搜索能让你能够找出两样东西之间的最短距离&#xff0c;比如&#xff1a;编写国际跳…

[转]Displaying standard DataTables in MVC

本文转自&#xff1a;http://stackoverflow.com/questions/2243898/displaying-standard-datatables-in-mvc Controller action:public ActionResult Index() {ViewData["Message"] "Welcome to ASP.NET MVC!";DataTable dt new DataTable("MyTable…

linux c之解决使用socket函数返回为0的问题

1、问题&#xff1a; 在 linux 平台下 写socket&#xff0c;实现简单的tcp通信&#xff0c;服务端第一次调用 socket函数返回 0 2、找原因&#xff1a; 我的代码是这样写的 if ((server_sockfd socket(AF_INET,SOCK_STREAM, 0) < 0)); 特么总是返回0&#xff0c;日了狗 自…