dimradius by AutoLisp in AutoCAD

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

内容简介: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不是那么直观。


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

查看所有标签

猜你喜欢:

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

C#图解教程

C#图解教程

索利斯 / 苏林、朱晔 / 人民邮电出版社 / 2009-1 / 65.00元

本书是一本广受赞誉的C# 教程。它以图文并茂的形式,用朴实简洁的文字,并辅之以大量表格和代码示例,精炼而全面地阐述了最新版C# 语言的各种特性,使读者能够快速理解、学习和使用C#。同时, 本书还讲解了C#与VB 、C++ 等主流语言的不同点和相似之处。 本书是一本经典的C# 入门书,不仅适合没有任何编程语言基础的初级读者,而且还是有VB 、C++ 等语言基础的C# 初学者的最佳选择。一起来看看 《C#图解教程》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具