安装完毕后,就可以编程了,因为是在外部控制autocad,原理和VB控制AUTOCAD是相同的。 为了捕获已经打开的autocad,用一个对象来获取,“零时对象”定义成“对象”这种数据类型(核心支持库提供的),当然也可以如mccad所的用英文来做变量名,个人喜欢吧,如抓图中用dx。易语言定义方法采用表格对应,省却了关键词, set dx AS new object 只需输入“dx” 和“对象”(数据类型有首拼输入法输入dx就能完成) 因为是外部控制,我假设用户在自己的窗口发命令给autocad,这个用户窗口,就是"_启动窗口",当然也可以是其他窗口或不用窗口也是可以。 流程控制“如果”看框图流线,那是y那是n,一目了然的,不用我赘述。如果获取成功,输出测试文本“获取成功”,输出测试文本是易语言带的命令,方便调试的,编译时此句不编译的。 获取采用“对象”这种数据类型下的“获取”方法,对应英文为“getobject”大家不用我说就不难理解。获取不成功就自己创建,由于前面定义了auto为一个“Acad程序”(也就是AcadApplication)看到中文的好处了吧,程序两字占的空间比“application”少吧。直接用“auto.创建()”就启动AUTOCAD了,用"auto.可视"把AUTOCAD显示出来。 为了向AUTOCAD发命令,还要抓住其当前文档,和模型空间,我们又定义了两个变量: doc ,Acad图形文档 mo,Acad模型空间 doc=auto.获取活动图形文件() ’这样就用了“Acad程序”这种数据类型的“获取活动图形文件”这个方法,抓住了当前活动的图形, mo=doc.取模型空间() ’抓住了该图形文件的模型空间, 这样就可以向里面画图形了。 为了画一根线,我们定义一个变量: line , Acad直线 直线有起点、终点,易语言是强类型语言,不能象VB那样定义一个double数组就可以了,"Acad模型空间"的"创建直线"方法需要的参数数据类型为“通用”,也就是变体类型,(目前易语言没有公开“通用”这个类型,只在其核心支持库里,用户定不了,相信以后会公开的),我们定义两个变体类型变量lpt1和lpt2。 btp1.创建数组 (5, 3) '让人不明白是5和3吧,看变体类型的帮助,就知道是创建了一个3个成员的double数组。 语法上,括号由里到外优先,编辑框2.内容是取的编辑框输入的文本,到数值 ()是把文本转成double数值, btp1.赋值 (到数值 (编辑框2.内容), 2),就是向这个数组第二个成员存我们输入的数据.其他取数据同。
line = mo.创建直线 (btp1, btp2) ’就是在该模型空间中画条直接。
acad.Zoom范围 () ’将AUTOCAD的显示zoomEXtend.
mccad说用英文写习惯,大概是英文太好的原因吧。我倒觉得,开发的过程如果你用中文和数学思考,为何不直接就写出来,干吗还要在头脑里转成英文再写出来?程序语言最终高级语言都会是向自然语言发展的。 |