找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
12
返回列表 发新帖
打印 上一主题 下一主题

【讨论】lisp语言的应用在画图方面的效率如何

[复制链接]
11
发表于 2003-6-30 13:12:11 | 只看该作者
独行客同志,
我以前的毕业设计就是给上海某家公司做的CAD仿真软件。
我们一组9个人,分别做每个某块。
我们以前是学C语言和VC++语言,后来,毕业设计的时候就改用VB了。
我们里面有些搞数据库的用VB,我们两个搞计算机仿真的也是用VB,感觉比LISP简单多了,因为VB语言本来就比较容易一些。
  
要是哪位朋友想搞CAD的二次开发的话,就用买本VBA的书吧,这是我的实际感受,也许是有点私人感觉了,不过我那组的很多人都这么认为的,我们根本就没有人用LISP语言的……
12
发表于 2003-6-30 18:10:22 | 只看该作者
ago wrote:
独行客同志,  
  我以前的毕业设计就是给上海某家公司做的CAD仿真软件。  
  我们一组9个人,分别做每个某块。  
  我们以前是学C语言和VC++语言,后来,毕业设计的时候就改用VB了。  
  我们里面有些搞数据库的用VB,我们两个搞计算机仿真的也是用VB,感觉比LISP简单多了,因为VB语言本来就比较容易一些。  
  
  要是哪位朋友想搞CAD的二次开发的话,就用买本VBA的书吧,这是我的实际感受,也许是有点私人感觉了,不过我那组的很多人都这么认为的,我们根本就没有人用LISP语言的……

  
兄弟是基于ACAD开发的仿真软件吗
好像在ACAD中也有VB的程序包是吗和LISP相比那个好学那个有前途
我觉得还是VB好应用范围广:-P
13
发表于 2003-6-30 19:25:58 | 只看该作者
对你,就是用的CAD里面VB开发的。
不过,我倒是使用的是单独的VB6.0开发的,只需要,在执行开发出来的插件时,让程序自己去判断是否系统已经打开了CAD软件,如果没有,让程序自动打开CAD2002程序,打开了就不要管它。
这只需要一个错误陷阱就可以实现了。
为什么我们要使用单独的VB开发,因为,这样子,程序的移植性比较好,不会受到CAD2002自身的影响……
我的建议是你学VBA,
买本VBA的书就可以了,因为VB学起来真的比较容易上手。
毕竟你学好了VB,开发其他的软件也是相通的。
要是有人非要说LISP语言好的话,我也没有办法,这些事情是仁者见仁,智者见智的事情……
:)
14
发表于 2003-6-30 19:31:41 | 只看该作者
给点独行客一点建议,VB用来做数据库比较不错,它配合SQL,很好的。
15
发表于 2003-6-30 20:01:05 | 只看该作者
ago wrote:
对你,就是用的CAD里面VB开发的。  
  不过,我倒是使用的是单独的VB6.0开发的,只需要,在执行开发出来的插件时,让程序自己去判断是否系统已经打开了CAD软件,如果没有,让程序自动打开CAD2002程序,打开了就不要管它。  
  这只需要一个错误陷阱就可以实现了。  
  为什么我们要使用单独的VB开发,因为,这样子,程序的移植性比较好,不会受到CAD2002自身的影响……  
  我的建议是你学VBA,  
  买本VBA的书就可以了,因为VB学起来真的比较容易上手。  
  毕竟你学好了VB,开发其他的软件也是相通的。  
  要是有人非要说LISP语言好的话,我也没有办法,这些事情是仁者见仁,智者见智的事情……  
  :)

  
::y::y
16
发表于 2003-7-1 00:32:23 | 只看该作者
我想每一種程式都有不同的擁護者, 看見AutoCAD在程式上的支援, 個人感覺上Lisp改變算是最少的, 除了在AutoCAD2000加入VISUAL LISP外, 幾乎沒有太多的改變, 就如陳老師說的它是“内嵌”的工具, 將來版本的演進其支援度如何, 大家無法預測, 我們曾看見ADS的繁華與褪色, ARX也有版本的差異, 或許我們可以探密的心情把玩, 畢竟大部分的人使用AutoCAD是為了設計繪圖, 大可不必太鍾情於它, CAD其他領域會有許多更好玩的地方, 諸如ProE在程式上的表現也有其獨特的地方, 當圖形建構完成, 其繪圖程式亦同時完成, 只要加入程式的一些邏輯, 一支程式就跟著結束.
17
发表于 2003-7-1 08:33:34 | 只看该作者
wayne 的观点很有意义。
我在AutoCAD中写了15年程序,能找到的工具都作了探索,现在剩下的只有AutoLISP写的程序包。还在用。至少是从R9直到2004。
这是个极为重要的结果,您总不希望您的程序,在版本变化的时候,要做必需的修改甚至重新编译吧?尤其是专业设计程序。
而VBA最大的缺憾,是我们只能跟着VBA的功能走,如果软件商没有提供相关的方法或属性,我们就无计可施。
我也用VBA,是在Inventor的程序设计中,因为没有别的可选。痛苦啊!交互操作中已经完成的操作,因为没有对应的方法,在程序中不能自动化。
而LISP,只要交互操作能完成,程序几乎肯定能完成。
-------------------------------------------------------------------------------------------------
提起ActiveX在AutoCAD最终用户程序设计中使用,最早的例子可以追溯到R14中的VBA。在AutoCAD 2000以后的版本中,VLISP为AutoLISP应用提供了许多新的功能,最为明显的就是支持对ActiveX对象的操作,以及与同样支持ActiveX功能的其它Windows应用程序的交互。在AutoCAD数据库的操作上,从有AutoLISP程序设计模式开始,AutoLISP始终是效率最高、能力最强的“内政”处理的程序。在许多VLISP的程序描述中也可以使用ActiveX,例如在图形处理的VLISP应用程序中,使用ActiveX模式。但这是要有代价的:必须放弃已经烂熟的AutoCAD命令交互操作的技巧,掌握新的、以前没有多少印象的、只提供了VBA模式而没有直接说明VLISP模式的对象方法和属性。实际上,ActiveX功能在程序设计思路上,相当像ARX/VC++,而与AutoLISP风格相差甚远。
据笔者的理解,设计AutoCAD专业应用程序的目的在于产生专业设计支持程序,以便提高设计质量,进而提高设计效率。其中的主要技术手段是操作AutoCAD的数据库,以便创建、编辑、提取数据库中的数据,进行设计的辅助。因此,评价一种程序设计方法在AutoCAD中进行专业设计支持的性能,主要指标是对AutoCAD数据库的操作能力。
传统的AutoLISP程序,能够直接访问数据库的底层,这就是一些 (Entxxx) 族函数和完全覆盖数据库内容的 DXF 组码,并派生了 (SSxxx) 族函数,(Tblxxx) 函数族、(Dictxxx) 函数族、对象描述双元表等。从程序设计过程看,这种风格使得程序设计者的创造力、专业设计能力、使用AutoCAD的技巧,得以尽情发挥。至于究竟怎样使用某具体功能,则仁者见仁、智者见智,同样的需求,程序设计的结果可能很不相同。但是由于直接访问了数据库的底层数据,可能完成的动作将极其丰富,几乎是:想得明白,就做得出来。可见,在AutoLISP 模式下,我们几乎是用手“直接触摸和操作”数据库。
ActiveX则是另外的一种风格。我们用的是ActiveX的作者提供的,针对特定对象的方法、属性,而不能直接访问数据库。AcitveX认为,AutoCAD的数据库内容对于程序设计者来说是“黑箱子”,只是在箱子的表面,由ActiveX的源程序作者,给我们安上了一些个电钮(方法)和仪表(属性),至于这些装置究竟是怎样工作的,我们无法知道,ActiveX的作者认为,我们也没有必要知道。从程序设计过程看,想做某事,先要找到有关方法和属性,有、程序可完成,无、程序不能完成。如果正好有相应的方法、属性,程序编写将相当简单,而且比较可靠(假如相关程序的作者写的很好的话)。同样的需求,不同人的程序设计的结果可能完全相同。可见,在ActiveX模式下,我们是通过ActiveX间接地操作数据库,戴着一付棉手套,有一种明显的“受制于人”的感觉,想使用操作AutoCAD的技巧,也无从发挥。由于严格的数据结构限制,自定义工程数据库也比较困难。
两种程序设计风格的描述,现在可以出现在同一个Visual LISP程序中,这无疑给我们又开了一条道路。路多了,优选的机会也多,走错路的机会也同样多。充分发挥ActiveX的优点,避开她的缺点,就要深入了解ActiveX,道听途说、浅尝则止,是必须避免的。
摘自《VisualLISP程序设计——技巧与范例》
-------------------------------------------------------------------------------------------------
18
发表于 2003-7-1 23:53:18 | 只看该作者
陳老師久違了,
已經鮮少拜讀如此精闢的見解了, 真是有心人, 佩服喔!
19
发表于 2003-7-16 14:40:31 | 只看该作者
各有各的好处,我个人更喜欢LISP,简单而且功能强大.
VB除了编写界面容易之外还有一个优势,就是容易在多文档界面中使用,在界面不复杂的单一文档界面中,我觉得LISP通常更好.
AUTODESK会在今后的版本中不断加强LISP的功能,LISP不会被淘汰.
  
LISP可以访问到的实体数据比VBA详细,比如,在VBA(AUTOCAD2000)中就没有办法得到 直线尺寸的定义点.( 还有很多细节... 痛苦中)
  
真的要学的话,要看自己的目标
成为高手那就要 LISP,ACTIVEX,ARX,DBX全部都学
一般用用的话ACTIVEX,LISP都可以
有VB基础就学VBA 吧
20
发表于 2003-7-17 17:38:32 | 只看该作者
全力支持LISP!
DING!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-23 22:41 , Processed in 0.025317 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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