前段时候中望公司发布了新一代拥有全新内核的产品:中望CAD+,作为一个国产CAD软件的支持者,我进行了下载测试,使用过后确实有了耳目一新的感觉,新功能方面有很多朋友已经做了深入的评测,我就不凑热闹了,这里我想针对软件的API接口方面发表一点自己的看法。新版本中望CAD+接口方面改善比较明显,除了函数库的扩充,接口兼容性也增强了很多,这对于部分老软件的挂接无疑是个好消息。

CAD作为大众化的平台软件,基本已经覆盖了全部日常设计中需要的功能,有些时候为了简化一些绘图步骤、提高绘图效率就不得不依靠一些二次开发程序来完成。这里我以绘制圆的中心线为例,介绍一些中望CAD+中提供的常见Lisp函数的调用方法。

中心线在我们画图过程中用的非常广泛,我们如果只在CAD平台(不包含任何二次开发软件)中绘制需要好几个步骤才能完成,如果我们编写一个Lisp程序只需要一个命令就可以实现了。关于Lisp的介绍大家可以去网上查看,这里不做详解。强调一点Lisp编写可以十分随意,基本不需要编译环境,word、txt等都可以用来编写,编译完成将扩展名改为.lsp即可。一些基本的库函数我们可以通过中望CAD+帮助菜单的开发人员帮助里面查询。

这里声明一点,我不是搞软件开发的,只是一名普通设计工程师,Lisp编程方面本人是个初学者,如果下面内容有不对的地方还望大家多多指教。写这篇文章主要是想和大家交流经验,以便共同提高。

下面进入正题,我们就来看一下程序是如何实现一步绘制中心线的。

上图是这个程序的源代码,大家可以看到这里面有很多的括号,这就是Lisp的一个特点,这就是为什么也有人叫它括号语言的原因,这里面要特别注意的就是括号一定要匹配,多了或者少了程序都会报错。我简单解释一下上面代码的含义,如果有介绍不清楚的地方大家还是可以去上面提到的开发人员帮助里面查询。

首先第一行里面定义的是这个小程序的开始和命令名字,也就是说我在程序后只要输入ZXX就可以使用这个程序了。后面的一对括号是用来定义后面变量的类型用的,这个后面有机会再详解,这个对新手来说可以暂时不考虑。

第二行是赋值函数和选择函数的联用,将选择的圆赋值给temp(自定义的变量)

第三行获取圆的构成信息,例如图层、圆心、半径、颜色等等。

第四行、第五行得到圆心、半径,方便下一步画中心线。

第六行、第七行才是真正的程序目的:开始画线。

第八行采用静默方式退出。

这样几行简单的代码就实现了中心线绘制,里面主要用的setq-赋值函数,command-执行命令函数(相当于我们在CAD命令行直接输入命令),polar-相当于CAD里面的角度+长度的相对坐标,“+”-运算符,即加法,其余的不一一列举了,大家去帮助里面查询吧。这只是一个简单实例,为了完善它我们还可以在画线前建立相关图层、图层跳转等,这些都可以用command来调用相关命令实现。

程序写好了可以在CAD里面加载验证,方法也很简单,可以把程序直接拖放到绘图区加载(老版本中望CAD拖放到命令行),也可以通过ap命令采用对话框方式加载,后一种还有一点好处就是可以把常用程序加载启动组里面,这样开软件不用加载了。

程序执行后的结果。

这样我们一步式生成中心线的目的就达到了,但是程序还存在很多的不足,例如选择对象只能是圆(非圆对象会出错)、不能批量生成、超出圆的长度不可调等等,后面会根据现存问题来调整程序,详见:中望CAD+API接口应用之Lisp篇(二)。以上是我在中望CAD+中学习的心得,希望可以起到抛砖引玉的作用,也希望大家工作之余能多多关注国产软件的成长,一起支持国产软件。

中望CAD调用lisp在哪_中望CAD+API接口应用之Lisp篇相关推荐

  1. 中望CAD调用lisp在哪_中望CAD+加载LISP程序速度提升高达8倍

    对于即将推出的全新一代二维CAD平台软件中望CAD+,广州中望数字化设计软件有限责任公司中望CAD+研发总监何祎认为,"Lisp 是CAD 应用发展中使用最普遍的程序语言之一.数以百万计的设 ...

  2. php类如何变为静态调用,PHP类中静态方法如何调用非静态方法?_后端开发

    php如何将字符串转成json_后端开发 php将字符串转成json的方法是:可以通过json_encode()函数来实现.json_encode()函数用于对变量进行JSON编码,该函数如果执行成功 ...

  3. cad绘图100实例解题_横沥CAD培训从入门到精通,CAD绘图技巧分享

    都市领航学校,专注电脑会计电商实战培训16年,坐落于东莞市大朗镇盈丰大厦11楼整层! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [课程介绍] CAD(Computer-AidedD ...

  4. cad怎么画坐标系箭头_怎样用CAD画一个路标箭头?,来学习吧

    在高速道路上我们经常会看到一些路标箭头,其实那些路标箭头是可以用CAD来画的.那么怎样用CAD画一个路标箭头呢?下面就让小编来给大家介绍一下吧,希望对大家有所帮助. 操作方法 01 打开CAD软件,操 ...

  5. api压测工具_高并发之API接口,分布式,防刷限流,如何做?

    在开发分布式高并发系统时有三把利器用来保护系统:缓存.降级.限流 缓存 缓存的目的是提升系统访问速度和增大系统处理容量 降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解 ...

  6. postman 获取接口参数_使用Postman管理API接口

    为了使服务端开发的API接口管理正规化流程化,所以,使用Postman这款神器来管理我们的接口,以方便后续项目的迭代开发. 一.什么是Postman Postman最基础的功能就是发送http请求,支 ...

  7. api laravel 统一返回方法_你写的API接口代码真的烂,难道不能对返回格式统一处理一下吗?...

    随着互联网各岗位精细化分工的普及,出现了很多的系统架构设计,比如常见的前后端分离架构,后端提供接口给前端,前端根据接口的数据进行渲染,大家各执其职,效率也非常的高,但是随着接口的增加,如果不统一的规范 ...

  8. Linux(Centos7.8)中conda虚拟环境搭建LSTM神经网络基于django3.1.2的api接口

    目录 1.准备工作 2.项目需求 2.1 根据需求下载LSTM依赖包 2.2 代码实现 3.启动服务 4.第三方应用调用webapi服务提供的api接口 1.准备工作 由上一博客Linux(Cento ...

  9. Java调用容联云通讯短信验证码API接口示例

    1.注册账号 https://www.yuntongxun.com/doc.html 注册后点击控制台可以看到你的信息 2.添加测试号码 3.打开文档>Rest API>短信 下载Java ...

最新文章

  1. Jvm 系列(五):Java GC 分析
  2. GitHub上大热的Deep Photo终于有TensorFlow版了!
  3. 用border-width,border-color画三角形
  4. Android 开机启动
  5. 部署WSE3.0实战:性能、证书与WSE910错误
  6. 微信上传素材 java_java微信接口之四—上传素材
  7. 怎样在javascript中直接设置好打印方式为横向或纵向(測試未果)
  8. 为什么都建议学java而不是python-是不是Python比Java更容易学,更容易就业?
  9. Codeforces Round #273 (Div. 2) D. Red-Green Towers DP
  10. my java note -------String 类的实例化
  11. 【信号与系统|吴大正】2:连续系统的时域分析
  12. 第8集丨流氓皇帝,贬谪之路,险象环生
  13. PC端微信一直显示“正在登录”问题处理
  14. app android切图工具,小白自学APP切图:APP切图工具Cutterman的参数设置
  15. 【题解】2019,7.14 模拟赛(阿鲁巴)
  16. MT6771平台简要了解
  17. 国际象棋棋盘64个格子能容纳多少粒米
  18. 使用cookie和session实现用户的认证和授权(原生方式,不使用安全框架)
  19. 移植u-boot-2010.12.tar.bz2版本到s3c2440过程
  20. 用HTML制作代码雨源码分享

热门文章

  1. ipv6抓包 tcpdump_网络抓包工具tcpdump图文教程
  2. Eurynome Cloud Athena 基于Spring Security OAuth2 的前后端分离脚手架
  3. 计算机基础之进制之间的转化
  4. linux 下vim删除多行
  5. 关于PCI-E接口你要知道这些点 1
  6. 小程序IOS页面下拉回弹效果
  7. 3年测试经验,用例设计竟然不知道状态迁移法?
  8. Android拍照相册相关的图片获取与剪切工具类
  9. MODBUS协议整理——读线圈寄存器01H、读离散输入寄存器02H
  10. 2022总结和2023展望