首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分享Visual Lisp程序第二波

继续分享关于Visual Lisp开发的程序,今天的知识点是读、写文件。不知道天天使用AutoCAD画图作为设计师的你,有没有注意到很多图型是规则的、构成其尺寸的数据都是标准的、图块的管理复杂且不易操作……,还有些情况需要将设计的情况或统计数据汇总输出到外部文件,诸如此类。

有没有想过,在咱们自己开发一个程序,通过浏览标准数据库就能实现一键绘制标准件、通用件、常用件并且可以输出总结资料到外部文件—这里的数据库也不过是txt或者bat格式的文件。

OK,先来看一下今天要分享的程序吧。

这是一个槽钢绘制程序的读取数据部分,槽钢是钢结构中常用的型材,在CAD设计中经常用到,cgh.lsp就是为绘制槽钢三视图而设计的(只是作为设计进阶的兴趣而已,网上有很多插件都可以很好的实现这个功能)。数据文件如图

读取子程序中cond条件判断没有什么新奇的了吧?相关读取的函数就是(open file mode),我们这里是读取的模式“r”,返回的是打开文件的代码。

读取文件中一行的程序是(repeat 行号 (read-line 代码)),代码就是open函数返回的文件代码,行号就是你需要读取的数据的行数。

小贴士:需要注意的是在控制台或者命令行进行调试时注意行数的概念,因为文件没有关闭,在进行read-line函数执行时会从上一次的行码为0开始计数进行读取,如果调试时需要使用正确的行码,需要关闭ff文件。

返回的是由那一行数据组成的字符串,应使用(substr 字符串 起始 长度)读取需要的数据,比如把第2行的40取出来如下

Atof函数是把字符变为实数型。

再说一下写数据,这里分享的是统计选择集中圆、直线、圆弧的数量。

主程序是选择集及相关的操作函数,子函数是输出函数,getfiled可以显示制定目录中具有指定扩展名的有效文件的列表,通过这个函数LISP语言可以访问CAD的文件对话框,有四个参数,一个是标题,一个是路径,一个是扩展名,最后一个是操作数。或者直接用open函数指向一个数据库文件。(write-line)函数和(read-line)类似,也是逐行书写。最后也需要关闭文件(close)。

小贴士:无论读还是写,数据库中格式很重要,就是给每种类型数据赋予的位数在每行书写时应统一。否则会乱,也会影响后续数据的处理。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180127G0CES400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券