明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2343|回复: 21

[经验] 谈谈新人如何入门AutoLISP开发

  [复制链接]
发表于 2020-4-23 23:56 | 显示全部楼层 |阅读模式
本帖最后由 灰石Jeremy 于 2020-4-30 13:27 编辑

默默的,在论坛里不知不觉,也混了有一年多的时间,但还是一个从来没发过贴的新人。一是觉得作为一个学徒,只要默默学习就好,二来,的确没有可以拿的出手的作品,能够和大家分享。不过片叶不沾身总感觉不太好,尤其是在翻看前人精贴受益匪浅时,备受感激,也想为接下来的新人做点什么,想了又想,只能谈谈我从入门学习lisp的经验吧。


入门一种编程语言,还是有点难度的,尤其是像lisp这种,非常规的编程语言形式。所以在学习lisp之前,最好能够先熟悉其他比如Python、PHP等这些简单常规的编程语言。因为常规编程语言的教程比较多,也比较好上手。不用学的太深,大概了解基础知识就可以。编程语言的体系都大同小异,这样在学习lisp的时候,就稍微比较轻松一些。本人就是在php的基础下,学习的lisp,感觉上手就容易的多。


论坛有CADghost从《晓东CAD空间》转载的《编程心得》包含了一些刚开始入门需要了解和掌握的基础知识,没有完全读懂不要紧,可以在学习的过程中再回顾,会发现其奇妙之处。


在学习一种语言的时候,教程是必要的,尤其是结合实例的教程,学习起来会更容易理解。我这里推荐一本入门的书籍《AUTOCAD完全应用指南  AUTOLISP+DCL+VISUAL LISP程序设计篇》,在论坛的下载区域有资源,这本书讲解很全面,尤其是每章导言部分的内容,能够很好的让读者知道如何学习及需要注意什么,我这里就不细说了。


刚开始上手的时候,不要急于解决某一问题,就从最简单的点的移动,图形的创建开始,一步步来,不要急于求成。一个问题的解决,最主要的是编程的思路问题,如果思路对了,好多东西就可以迎刃而解。不要嫌弃程序的冗长,只要能够解决问题,就是一个好的程序。哪怕是拼接来的程序,只要能够从里边学到东西,那么这个程序就是成功的。程序不可能刚开始就是尽善尽美,需要后期在使用的过程中,慢慢的调试完善,也是在我们的学习中,逐渐完善的。


在熟悉了lisp的基本函数,并能写一些小的开发程序之后,就可以试着使用vla对象来开发一些程序。vla对象对lisp函数效率提高可不止一点点,尤其是对dxf组码的使用上,避免了繁琐的操作,可以慢慢体会。可能你会觉得突然要记那么多函数有点困难,不过一般我们能够使用到的函数并不是很多,并且在记得时候有很多规律可循,其实并没有想象中那么难。总之,刚开始的确挺难转变的,慢慢习惯就好。


然后进阶教程的话,就是一些函数的参考手册,有好多种,这里推荐《AutoLisp葵花宝典A》,里边不但有基础的函数,还有自贡黄明儒版主收集的常用函数,基本上涵盖了常用的功能。本人就是在使用的时候,查询相关的函数,结合自己需要的功能进行调用。如果可以逐一的分析,一条条学下来,不是大神也算是半个大师了。


如果想要制作自己的工具箱,需要注意的地方就特别多了,我这里简单的列举几点,有补充的回头我更新在下面

1、出错函数*errer*的运用,可以在论坛搜索,有函数解释,也有总结好的模板直接使用

2、自定义函数的命名方式,常见的有:分割或者_分割,然后标注功能类型等等,形成自己的模式

3、快捷键的命名方式,避免重复,尽量在两到三个字符

4、对于函数的定义上,特别注意之后的调用问题,做到最大化的自由度

5、文字的处理上,优先选择正则处理,熟悉了会发现容易很多

6、注意文件的加载顺序,会影响到程序编译后是否可以使用问题

7、对于天正二次开发的时候,注意天正图元崩溃问题


本人景观界小学生一枚,如果有志同道合的朋友,可以一起学习一起加油哈!~~~



点评

写的不错,受益了  发表于 2020-10-4 21:14
写的不错,值得初学者参考。  发表于 2020-4-24 11:05

评分

参与人数 2明经币 +2 收起 理由
VBALISPER + 1 赞一个!
tryhi + 1 赞一个!

查看全部评分

发表于 2020-10-5 05:34 | 显示全部楼层

几点想法:

1.自学一个编程语言如果不想21天从入门到放弃,最好的办法就是尽快写程序,很多人的信心都是磨灭在学习各种概念上了.大部分人还是有需求了才来学的,向着目标硬凑过去,能实现基本的功能,不用很完善,就能坚持自己学下去.

2.不太建议太早接触Vlisp,原因和上面一样,函数多,属性多,直接去看会有些摸不到头脑的感觉,我觉得以Alisp为主,碰到Alisp难以解决的问题,才能发现Vlisp的美.

3.函数、变量和程序的命名,建议有自己的特色,避免和别人的函数冲突,例如我自己写的函数,会以wyl:开头,命名方式有大小驼峰(以首字母大写为分隔),蛇形命名(以_分隔)等,有自己的习惯,让自己能一眼看明白就好,并没有特别的要求.

4.函数名、变量尽量用英文命名,避免用拼音命名(太长,不好认),杜绝用拼音首字母命名.

5.程序的命名,尽量不要太简单,避免冲突,快捷键在pgp文件里设置就好.

6.详细的注释是必不可少的,否则过两个月你就不认识他了,例如比较特别的函数写上作用,比较长的if、while等函数,在函数的右括号后面写上;end if,能减少大量的debug的时间.

7.函数尽量小而精,一个函数原则上只处理一个步骤,能提高复用性,对于通用函数,超过30行就自己看看能不能拆分成多个独立的函数,太长的函数就不通用了.

8.专用函数尽量写在程序里面,避免和其他函数冲突.

9.少用全局变量(程序名后面括号里斜杠后面没有的变量就是全局变量),必须要用就把名字起的复杂一点.避免冲突.

10.不熟悉cons的话,尽量少用,cons的两个参数如果都是原子(atom),生成的是点对而不是列表.(cdr (cons 1 1))和(cdr (list 1 1))返回值不同,(cons 1 (cons 1 1))和(cons 1 (list 1 1))返回值也不同.


评分

参与人数 1明经币 +1 收起 理由
zhangcan0515 + 1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-4-27 23:22 | 显示全部楼层
ntwison 发表于 2020-4-27 22:53
总结的好,不过看到帖子里有吧内字样,难道楼主从xx贴吧copy的?

我们这不是叫贴吧吗?。。。好吧,好像叫论坛。。。大概就这么个意思
发表于 2020-4-24 13:47 | 显示全部楼层
谢谢分享经验
发表于 2020-4-25 08:32 | 显示全部楼层
我也想发点什么,可是已经没有权限,发不了主题贴的路过
发表于 2020-4-25 08:32 | 显示全部楼层
我也想发点什么,可是已经没有权限,发不了主题贴的路过
发表于 2020-4-27 22:53 | 显示全部楼层
本帖最后由 ntwison 于 2020-4-27 23:02 编辑

总结的好,不过看到帖子里有吧内字样,难道楼主从xx贴吧copy的?
发表于 2020-4-28 10:36 | 显示全部楼层
好贴!经验分享,资源整合!
发表于 2020-4-28 20:37 | 显示全部楼层
新手学习路过,支持!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 19:29 , Processed in 0.206876 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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