dimradius by AutoLisp in AutoCAD

栏目: Lisp · 发布时间: 6年前

内容简介:dimradius by AutoLisp in AutoCAD

dimradius by AutoLisp in AutoCAD

eryar@163.com

最近在开发一个自动出图程序,从PDMS模型中取数据后,经过处理生成AutoCAD的图纸。其中涉及到一个问题就是如何尽量使程序与AutoCAD低耦合,尽量不使用第三方库的情况下,实现数据的传递。

最开始想到是用ODA(Open Design Alliance)的DWGdirect库来直接生成DWG文件,并且PDMS中就是使用这个库来生成DWG文件的。DWGdirect的用法与AutoCAD .Net的接口名称基本一致,用法也相同,但是这样就引入了第三方库。

还有一种方法就是使用AutoLisp脚本来生成图纸。这样的话,程序只需要生成一个AutoLisp脚本文件,文件中包含创建图形的命令。AutoLisp脚本与PDMS的PML类似,都需要一个解析执行的环境,即PML依赖PDMS平台才能运行,AutoLisp依赖AutoCAD平台。如果使用AutoLisp,程序不依赖DWG相关的第三方库,只需要生成一个文本文件。决定使用AutoLisp后,还有一个问题,就是如何在启动AutoCAD能自动加载生成的AutoLisp文件去生成图纸。

从网上查到自动加载程序的方法:About Auto-Loading and Running AutoLISP Routines:

http://help.autodesk.com/view/ACD/2015/ENU/?guid=GUID-FDB4038D-1620-4A56-8824-D37729D42520 ,发现使用acaddoc.lsp的方法最方便。方法如下:

1. 使用一个模板DWG文件Template.dwg;

2. 在模板DWG文件Template.dwg相同的目录中,放一个acaddoc.lsp脚本文件,其中内容可以参考如下方式:

dimradius by AutoLisp in AutoCAD

3. 程序生成一个脚本文件myapp.lsp到acaddoc.lsp的文件夹中,然后再打开模板DWG文件Template.dwg。

经过上述处理,程序在打开模板DWG文件的时候会启动AutoCAD,启动AutoCAD的时候会加载acaddoc.lsp文件,在acaddoc.lsp中又会加载myapp.lsp,这样就会执行myapp.lsp中的命令,自动生成图纸了。

图形的生成可以使用AutoCAD中的命令,如生成直线可以使用line,生成圆可以使用circle,等等。对生成的图形进行标注的时候,发现线性标注很方便使用命令自动生成,但是想标注半径或直径的时候,一直没有测试成功。后来测试成功后,将这些命令记下来,方便查询。

; ; create a circle at (0,0,0) and radius is 8
(setq aCenter (list 0 0 0))

(setq aRadius 8)

(command "circle" aCenter aRadius "")

; ; remember the circle and dimradius
(setq aCircle (entlast))

(setq aPoint (polar aCenter 45 aRadius))

(setq aDim (cons aCircle (list aPoint)))

(command "dimradius" aDim aPoint)

; ; zoom all


(command "zoom" "e")

打开Template.dwg的时候,会自动生成如下内容:

dimradius by AutoLisp in AutoCAD

使用AutoLisp脚本文件来作为数据交换的方式来开发程序,可以使自己的程序不依赖DWG读写相关的第三方库,使程序更稳定。

使用AutoLisp来自动生成标注的时候,线性标注很容易生成,只需要指定几个点即可。可是生成半径或直径标注数据时,因为需要选择圆弧,AutoLisp不是那么直观。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JSP网站开发典型模块与实例精讲

JSP网站开发典型模块与实例精讲

李振捷 / 电子工业出版社 / 2006-8 / 50.0

本书是典型模块与实例精讲丛书中的一本。 本书讲解了使用JSP开发网站系统的经典模块和工程实例,基本囊括了JSP的重点技术,对这些模块稍加修改就可以直接使用到实际项目中。为了方便本书的读者交流在学习中遇到的问题,特地在本书的服务网站上公布了很多QQ群组,读者只要拥有QQ号码,就可以参与到本书的QQ学习群组中一起讨论学习心得。本书的作者还在一定的时间给读者提供在线答疑服务。一起来看看 《JSP网站开发典型模块与实例精讲》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具