找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1496|回复: 2

[老徐讲堂] 浅谈探讨创建实体的几种方式及运行速度

[复制链接]

已领礼包: 12个

财富等级: 恭喜发财

发表于 2013-8-9 07:25:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 小龙龙 于 2013-8-9 07:27 编辑


书上一般说ObjectARX创建实体的速度比其他方式创建实体的速度要快很多,其实说的有些模糊,对于一些刚刚入门的人显然是不太理解的。这里呢通过由LISP创建直线的三种方式(Command 函数 Entmake函数 及VLA-ADDLINE方式)与ObjectARX创建直线的几种方式(调用acedCommand创建;利用acdbEntMake创建;以及ObjectARX方式创建)来详细的分析出运行机制以及速度.

首先关于CAD几种开发语言的比较呢,我将在下一讲详细的去说,这里呢简单说一下目前LISP语言运行的机制。目前来说AutoCAD内置LISP函数主要由ObjectARX来定义的一种有LISP语法结构的一种内置与CAD的一种编程开发环境,实质还是由ObjectARX定义的,最后需要内部的读取翻译将LISP源码转为机器码来进行,这样就使得运行机制与2000版之前有了很大的不同。

ObjectARX的程序与CAD本身共用同一地址,所以不需要翻译直接与CAD通信那么速度上就会相对快一些,而且开发出的命令也是与CAD内部的相一致。

前面列举的几种方式创建直线可以简单归类为

调用CAD内置命令方法【LISP】的是(command )ARX的是acedCommand

由链表创建 LISP (entmake)  ARX acdbEntMake

VLISP方法 (vla-addline) ARX调用COM接口(以后单独介绍)

ObjectARX 直接操作数据库创建。

首先来看一看调用内置命令方式。

  1. (defun c:cmdlinelsp()
  2.   (setvar "cmdecho" 0)
  3.   (setvar "osmode" 0)
  4.   (acet-ui-progress "创建10000条直线LISPcommand" 10000)
  5.   
  6.   (repeat 10000
  7.     (acet-ui-progress -1)
  8.     (command "line" "0,0" "10,0" "")
  9.     )
  10.   (acet-ui-progress)
  11.   (princ)
  12.   )

(10点补齐 )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-9 13:52:06 来自手机 | 显示全部楼层
瞧瞧,等等:)来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-6-18 08:40 , Processed in 0.166134 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表