iCAx开思网

标题: 【讨论】lisp语言的应用在画图方面的效率如何 [打印本页]

作者: 独行客    时间: 2003-6-29 11:02
标题: 【讨论】lisp语言的应用在画图方面的效率如何
能够自己定制ACAD吗:-P好学否:-d
作者: 陈伯雄    时间: 2003-6-29 12:29
当然效率很高了,因为是自动成图。
好学,二十年来,大量的高手出现...
作者: 独行客    时间: 2003-6-29 12:44
陈伯雄 wrote:
当然效率很高了,因为是自动成图。  
  好学,二十年来,大量的高手出现...

  
能和我讲讲如何入门提高和用到工作中吗。陈老能教偶吗:-P
作者: 陈伯雄    时间: 2003-6-29 15:21
实际上,对计算机专业知识的掌握并不是开始进行应用程序设计最必要的东西,对此,可用“急用先学,立杆见影,在用字上狠下工夫”的原则,CAD技术是一套包罗万象的综合技术,不能指望象在校学习那样按步就班地学会,总原则是在已有的专业知识基础上,延伸和扩展,突破几点、联点成线、组线成网、网密到一定程度,就会产生质变,成为完整的知识面。对AutoCAD / Visual LISP的理解越深,使用就越加准确自如,效率才会表现出来。仅按AutoCAD手册资料上说的去用,会有很大的局限性。AutoCAD 是“干”会的,不是“学”会的。我的一个朋友告诉我他的体会:“不管什么程序设计语言,只要你真的玩透了,一样能够写出漂亮的东西”。我信,浅尝则止、道听途说都是应避免的。“操千曲而后晓声,观千剑而后识器”,说明下功夫的必要。
  
摘自《Visual LISP程序设计——技巧与范例》
作者: 独行客    时间: 2003-6-29 16:34
陈伯雄 wrote:
实际上,对计算机专业知识的掌握并不是开始进行应用程序设计最必要的东西,对此,可用“急用先学,立杆见影,在用字上狠下工夫”的原则,CAD技术是一套包罗万象的综合技术,不能指望象在校学习那样按步就班地学会,总原则是在已有的专业知识基础上,延伸和扩展,突破几点、联点成线、组线成网、网密到一定程度,就会产生质变,成为完整的知识面。对AutoCAD / Visual LISP的理解越深,使用就越加准确自如,效率才会表现出来。仅按AutoCAD手册资料上说的去用,会有很大的局限性。AutoCAD 是“干”会的,不是“学”会的。我的一个朋友告诉我他的体会:“不管什么程序设计语言,只要你真的玩透了,一样能够写出漂亮的东西”。我信,浅尝则止、道听途说都是应避免的。“操千曲而后晓声,观千剑而后识器”,说明下功夫的必要。  
  
  摘自《Visual LISP程序设计——技巧与范例》

  
长见识啦;-)我有学习LISP的必要吗:-)
作者: suwenyong    时间: 2003-6-29 19:18
我買了一本陳老師寫的書(<<VISUAL LISP FOR AUTOCAD 2000程序設計-從學會到用好>>),書是蠻好的,大家有興趣的話可以參考一下。
不過說句陳老師不愛聽的話,我總感覺書寫的有些凌亂.
作者: ago    时间: 2003-6-29 20:15
我没有搞懂,为什么那么多人喜欢LISP语言,其实LISP语言和VB比较起来复杂多了。
不懂……LISP语言是已经被淘汰了的了……
作者: 独行客    时间: 2003-6-29 20:58
ago wrote:
我没有搞懂,为什么那么多人喜欢LISP语言,其实LISP语言和VB比较起来复杂多了。  
  不懂……LISP语言是已经被淘汰了的了……

  
为什么过时啦比VB都复杂不会吧
作者: wayne    时间: 2003-6-29 22:39
1, DCL 的交談框介面比VB艱深難懂且只能使用AutoCAD Slide File, 不能用其他的影像檔.
2, 資料使用串列記錄, 無法使用資料庫的格式儲存, 困難發展大型程式.
3, 與電腦硬體溝通困難.
4, 其優點存取AutoCAD物件簡易, 加速繪圖效率.
作者: 陈伯雄    时间: 2003-6-30 08:27
1, DCL 的交談框介面比VB艱深難懂且只能使用AutoCAD Slide File, 不能用其他的影像檔.  
不如VB,确实。但在机械设计中足够用了。没必要用其他格式的图像文件。
  
2, 資料使用串列記錄, 無法使用資料庫的格式儲存, 困難發展大型程式.  
非也,我曾经用AutoLISP完成50万元素的数组,并进行检索运算。能否大型,其限制比VC++还要少些,能力还要强些。看您怎么写程序了...
  
3, 與電腦硬體溝通困難.  
因为它是“内嵌”的工具,外交的问题可以引用其他程序设计工具的结果。
  
4, 其優點存取AutoCAD物件簡易, 加速繪圖效率.  
这是最为关键的性能了,您写程序不就是为了做这个么?
作者: ago    时间: 2003-6-30 13:12
独行客同志,
我以前的毕业设计就是给上海某家公司做的CAD仿真软件。
我们一组9个人,分别做每个某块。
我们以前是学C语言和VC++语言,后来,毕业设计的时候就改用VB了。
我们里面有些搞数据库的用VB,我们两个搞计算机仿真的也是用VB,感觉比LISP简单多了,因为VB语言本来就比较容易一些。
  
要是哪位朋友想搞CAD的二次开发的话,就用买本VBA的书吧,这是我的实际感受,也许是有点私人感觉了,不过我那组的很多人都这么认为的,我们根本就没有人用LISP语言的……
作者: 独行客    时间: 2003-6-30 18:10
ago wrote:
独行客同志,  
  我以前的毕业设计就是给上海某家公司做的CAD仿真软件。  
  我们一组9个人,分别做每个某块。  
  我们以前是学C语言和VC++语言,后来,毕业设计的时候就改用VB了。  
  我们里面有些搞数据库的用VB,我们两个搞计算机仿真的也是用VB,感觉比LISP简单多了,因为VB语言本来就比较容易一些。  
  
  要是哪位朋友想搞CAD的二次开发的话,就用买本VBA的书吧,这是我的实际感受,也许是有点私人感觉了,不过我那组的很多人都这么认为的,我们根本就没有人用LISP语言的……

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

  
::y::y
作者: wayne    时间: 2003-7-1 00:32
我想每一種程式都有不同的擁護者, 看見AutoCAD在程式上的支援, 個人感覺上Lisp改變算是最少的, 除了在AutoCAD2000加入VISUAL LISP外, 幾乎沒有太多的改變, 就如陳老師說的它是“内嵌”的工具, 將來版本的演進其支援度如何, 大家無法預測, 我們曾看見ADS的繁華與褪色, ARX也有版本的差異, 或許我們可以探密的心情把玩, 畢竟大部分的人使用AutoCAD是為了設計繪圖, 大可不必太鍾情於它, CAD其他領域會有許多更好玩的地方, 諸如ProE在程式上的表現也有其獨特的地方, 當圖形建構完成, 其繪圖程式亦同時完成, 只要加入程式的一些邏輯, 一支程式就跟著結束.
作者: 陈伯雄    时间: 2003-7-1 08:33
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程序设计——技巧与范例》
-------------------------------------------------------------------------------------------------
作者: wayne    时间: 2003-7-1 23:53
陳老師久違了,
已經鮮少拜讀如此精闢的見解了, 真是有心人, 佩服喔!
作者: XEVEN    时间: 2003-7-16 14:40
各有各的好处,我个人更喜欢LISP,简单而且功能强大.
VB除了编写界面容易之外还有一个优势,就是容易在多文档界面中使用,在界面不复杂的单一文档界面中,我觉得LISP通常更好.
AUTODESK会在今后的版本中不断加强LISP的功能,LISP不会被淘汰.
  
LISP可以访问到的实体数据比VBA详细,比如,在VBA(AUTOCAD2000)中就没有办法得到 直线尺寸的定义点.( 还有很多细节... 痛苦中)
  
真的要学的话,要看自己的目标
成为高手那就要 LISP,ACTIVEX,ARX,DBX全部都学
一般用用的话ACTIVEX,LISP都可以
有VB基础就学VBA 吧
作者: top    时间: 2003-7-17 17:38
全力支持LISP!
DING!




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3