2006年9月9日星期六

晓东xdcad AutoLISP论坛 推荐网址 集中

1. 一些国内Lisp高手的主页

晓东: http://www.xdcad.net

明经通道:http://www.mjtd.com

Eachy: http://eachy.ys168.com

狂刀:http://dreamsky_lxx.139.com/

秋枫quelea:http://quelea.w3.zccn.net/default.asp

它山之石:http://stonedwg.ys168.com

XYP1964:http://free.ys168.com/?xyp1964

Lucas:http://lucas-lai.ys168.com/

wkai:http://free.ys168.com/?wkai, http://autool.blog.edu.cn/

netbee:http://netbee1.ys168.com/

ll_j: http://ll-j.ys168.com/

xcajcj: http://free.ys168.com/?xcajcj

coolzhb:http://coolzhb.ys168.com/

xshrimp:http://shlisp.ys168.com/

xxming:http://free5.ys168.com/?xxming

fsxm:http://free.ys168.com/?fsxm

wujimmy:http://www.wujimmy.com/

tc405003:http://free5.ys168.com/?tc405003

qjchen:http://chenqj.blogspot.com

2.外国公开论坛主页

google group :http://groups.google.com/group/autodesk.autocad.customization?hl=en

Autodesk自家的讨论区:http://discussion.autodesk.com/forum.jspa?forumID=130

3.一些外国Lisp高手的主页

Tony Tanzillo: google group上发贴最多的高手,dephi结合cad
http://www.caddzone.com/dwginfo.htm
http://ourworld.compuserve.com/homepages/tonyt
http://www.acadxtabs.com/

Reini Urban:写stdlib的高手
http://xarch.tu-graz.ac.at/autocad/news/faq/autolisp.html
这个地址似乎不再存在了,可以到web.archive.org那里找找以前的页面

Jürg Menzi:写了许多vl开头的复杂通用函数
http://www.menziengineering.ch/

Mark Thomas:一个非常好的论坛的创始人, theswamp有许多的高手
http://www.theswamp.org

John Uhden:写了不少用@开头的通用函数
http://www.cadlantic.com/

Frank Oquendo
http://www.acadx.com/

kozmos,好像就是晓东论坛的mmmm,现在出国了?:)
http://www/ikozmos.com

Laurie Comerford
http://www.cadapps.com.au/

Jon Fleming:ADOLISP:一个关于与数据库连接的vlisp程序库
http://www.fleming-group.com/

Jeff Mishler :the swamp的jeff M
http://www.cadvault.com/

Luis E的主页
http://www.geometricad.com/inicio.php?〈=en 有一个自动建立封闭区域的程序,速度很快

Jimmy Bergmark的博客:曾经写出hatch边界重建hatchb的高手
http://jtbworld.blogspot.com/

Vladimir Nesterovsky
http://vnestr.tripod.com/
http://www.netvision.net.il/php/vnestr/

Bobby C. Jones
http://www.AcadX.com

4.晓东LISP论坛推荐网址的集中

eachy版主发起的这个帖子Lisp网站收藏大 大的开阔了我的眼界,为了避免本人在以后推荐网站时候产生重复,故将网站整列如下,请注意,本篇中部分引用了原作者的评价,而另外的部分评论文字是本人学 习网站之后的心得看法,纯属个人观点,如与原推荐者看法相左者,请原推荐者原谅,请仔细阅读原帖了解原作者对网站的看法

1. eachy推荐的地址:
一个有矩阵运算的网站:
http://www1.harenet.ne.jp/%7Ehanafusa/memo/matrix.htm
(已经失效)
但是有一个相关的博客还存在:
http://www1.harenet.ne.jp/~hanafusa/blog/

巴西网站,非英文,论坛和下载 :
http://www.cadesign.com.br/visual022001.htm

比较早的网站,有代码和课程:
http://www.caddigest.com/subjects/AutoCAD/tutorials/autolisp.htm

一个很好的韩国网站:
http://xoutside.com/CAD/lisp/lisp_FAQ.htm

cad讨论区 :
http://www.talkaboutcad.com/group/comp.cad.autocad/

丹麦的网站,一定数量的文章:
http://www.cadditions.de/index.htm

巴西的网站,非英文,论坛和文章:
http://www.autolisp.com.br/iframe.php?file=sobre_vlx.htm

中国计算机报:
http://www.ciw.com.cn/media/ciw/681/01610001.htm

波兰网站,非英文:
http://www.cad.pl/lisp.fcgi?n=6&ph=

关于 Windows Script Host的网站:
http://www.winscripter.com/

Stdlib作者的主页:
http://xarch.tu-graz.ac.at/autocad/wiki/AutoLispProblems?action=Info

著名的lisp网站,现在改com为net了,横刀立马,panterax,Underway也推荐过,
http://www.afralisp.com/lisp/enviro.htm
新网站的地址是:http://www.afralisp.net

台湾的autocad本部,xiaobaorambo也推荐过:
http://www.autocad.com.tw/newlisp_1.htm

失去连接:
http://www.cadpt.com/main_html/lisp.htm

失去连接:
http://www.cadvault.com/forums/archive/index.php/f-111.html

cad的技巧:
http://www.softcosys.com/articles.html

失去连接:
http://www.cqzxzx.cn/it/noi/shuanfa/index.htm

不少lisp源码和一些Lisp交换连接:
http://web2.airmail.net/terrycad/

这个连接的结果似乎指向其他的了:
http://www2.allusenet.org/pages/4047.html

关于automatic object:
http://fox.wikis.com/wc.dll?Wiki%7EAutomationObjects%7ESoftwareEng

非英文网站论坛:
http://www.foren.industrie24.com/?f=5&i=7395&t=7392

俄文Lisp论坛:
http://kurganobl.ru/cad/book.jsp?id_parent=48&id=777&tn=main

一批Lisp程序下载:
http://www.cadcorner.ca/lisp.php

2. mmmm推荐的网站
menzi的主页
http://www.menziengineering.ch/

autodesk的讨论区,不知道现在是不是改了
http://discussion.autodesk.com/WebX?14@166.gDZfaqcara6.1@.ee77f0b

一个论坛:http://www.cadtutorforum.net/forum/viewforum.php?f=12&sid=b0a7332ad439552d6ebc5e90e6de9553

现在网址改成这个了
http://www.cadtutor.net/forum/
不错的论坛


3.lucas推荐的网站
这个就是vlisp bible作者的主页,dsxtool是一个有用的程序包
http://www.dsxcad.com/

4. aeo推荐的网站

http://www.cadenceweb.com/community/downloads.html

5.hqd9639推荐的网站
有excel和cad交流的好函数
http://www.ikozmos.com/

6.dxqyz推荐的网站

http://www.jtbworld.com/?/lisp.htm

7.netbee推荐的网站
初学者非常好的学习地方
http://www.tsindong.com/LispStudy/index.html
http://www.xanadu.cz/en/
http://www.cadforum.cz/cadforum_en/default.asp
http://www.autolisp-tutorial.mapcar...unktionen2.html

http://www.cadopolis.com

8.enjoycat推荐的网站
失去连接:
http://home.njenet.net.cn/cat1366/AutoLISP/1.htm

9.hudson,cjun2258推荐的网站
DT工作室,繁体:
http://www.yltsang.com/

10.aidraft推荐的网站
不少网址连接:
http://intervision.hjem.wanadoo.dk/links.htm
几个牛人不频繁出现的网站:
http://www.cadvault.com/forums/

11.啵浪鼓推荐的网站
http://www.icad.com.cn/cadforum/index.asp

12.xunix推荐的网站
http://www.simplecad.com/lisp/lisp.htm

13.panterax推荐的网站
著名的LISP程序收集地
http://www.cadalyst.com/

14.gcb98推荐的网站
http://www.cadinfo.net/scripts/software-products.cfm?cat=AutoLISP

15. taner推荐的网站
http://www.apl.jhu.edu/~hall/lisp.html
http://www.4d-technologies.com/techcenter/index.htm
http://www.acadx.com/

16.松松鼠推荐的网站
http://www.dragon2g.com/bbs

17.lz689706推荐的网站
http://www.caxhome.com/index.php?sid=lwTKTR

18.carryoutt推荐的网站
http://www.mouldbbs.com/dispbbs.asp?boardID=129&ID=120765&page=1

19.ronglif4推荐的网站
http://home.njenet.net.cn/cat1366/AutoLISP/1.htm

20.garcigj推荐的网站
http://www.hispacad.com/foro/

21.本人qjchen推荐的网站

曾经镜像和下载过的几个lisp程序网站
有高手说过,能提供源码的lisp大部分比较简单,能编复杂的都去搞软件卖钱了。
但是,还是有不少lisp源码充满了睿智,可以带你入门,使你进步。
而且当其他人已经编过的话,自己就可以省下不少编写的时间。
现在遇到问题的时候,我就先在机器上查找一番,看看有没有现成或接近的。
因此遇到lisp源码网站的话,我经常忍不住就下载了。下面是其中几个网站:

http://new.cadalyst.com/code/
非常好的网站,这个一直有更新。下载过其自92到06的2000多个lisp,还会更新。
虽然高手们似乎看不起这个网站,说其偏简单,但是其可以应付大部分的日常要求。
有时候去看看bill kramer的编程解说,觉得高手的思路还是很清晰和神奇的。

http://www.caddepot.com/cgi-bin/cfiles/cfiles.cgi?0,0,0,0,3
这个也有几百个lisp源码,从A~Z排列。这个的源码以前是在
http://www.cadresource.com/下载过的,现在似乎改名了。

http://www.planetsourcecode.com/vb/default.asp?lngWId=13
这里程序不多,但是有一些没有在其他地方看到的,有一个计算器程序,作的真大

http://autolisp.mapcar.net/lambda.html
这个是为了学习lambda函数google出来的,不是英文,但是光看语言也可以学到很多
这一页刚好是利用lambda函数绘制3dmesh的一个例子,挺好的

http://xoutside.com/CAD/lisp/lisp_chair.htm
这个是在看eachy版主一篇介绍hyperlink文章中提到的一个韩国网站,有100多个
函数,其中不乏技巧,也mirror之

http://www.paracadd.com/lisp.htm
500多个lisp源码

http://www.cadshack.com
这个是98年整个网站mirror并且自己翻译了其中280个lisp的说明,程序都
是纯lisp,大部分比较简单。好像现在这个网站没有了。啊,刚刚测试了这个网站,好像又活了,不过和原来不一样了。

一个不错的论坛,高手如云
http://www.theswamp.org/forum/

另外,有一个技巧,假如你要寻找的网页现在再也不存在或者临时down掉的话,可以到这里
http://web.archive.org/
它可以带你回到过去的备份
比如有名的dsxcad现在没有了,但是这里还有
http://web.archive.org/web/20040924001830/http://dsxcad.com/
有空回去看看98年上网最喜欢去的
http://www.softseek.com的芳容:)

一个论坛:http://forums.augi.com/showthread.php?t=45940
它的主页是http://www.augi.com,叫autocad user group international好像还挺有名的
其他的分类还有AutoLISP , VBA , ARX , Dot Net API , RealDWG , API Wish List

http://www.kitox.com/kitoxtools_en.php
有一个Lisp编写的工具箱kitox tools

一个台湾Autolisp论坛
http://www.autocad.com.tw/asp/ShowRecord.asp?WebName=AutoCAD&ID=11502

另一个Lisp的网站
http://www.tktn.com/utilities/tkutil.htm

有一些从其论坛中挑选出的月份LISP,数量比较少
http://spaug.org/index.html

1. http://www.cadesigner.com/Downloads.htm

2. http://paracadd.com/lisp.htm
http://paracadd.com/lisp/lisp_lst.htm
有一个叫http://paracadd.com/lisp/lsplst.lsp的程序挺好的,自动生成html页面
http://paracadd.com/lisp/

3.一个韩国的网站,收集了大量不错的lisp程序,可以发现,其不少程序是来自于theswamp。
http://www.acadvba.com/zero/zboard.php?id=codelisp

4. MP- Michael Puckett -一个国际知名autolisp高手的主页,有好些精彩的函数。他的主页做的非常精致,层次结构很好。
http://tiddlyspot.com/cadlabs/


back


学习日记

1. 一个基于python的cad系统pythoncad,可惜是在linux平台的,希望它能用在windows系统上

地址:http://www.pythoncad.org/screenshots.html

图片:
2. 学习了CAD中控制单文件和多文件的一个系统变量:SDI

类型:整数
保存位置:注册表
初始值: 0

控制 AutoCAD 运行于单文档还是多文档界面。帮助第三方程序发展商更新应用程序以便与 AutoCAD 多图形模式顺利兼容。

0 打开多图形界面。

1 关闭多图形界面。

2 (只读)禁用多图形界面,因为 AutoCAD 已加载不支持多图形模式的应用程序。SDI 的设置 2 不被保存。

3 (只读)禁用多图形界面,因为用户将 SDI 设置为 1 并且 AutoCAD 已加载不支持多图形模式的应用程序。(加载应用程序之前将 SDI 设置为 1。)SDI 的设置 3 不被保存。

如果 SDI 设置为 3,则卸载不支持多图形的应用程序后 AutoCAD 会将其切换回 1。

3. 把FAT32系统转成NTFS系统只需CONVERT就可以了,10G大概需要2分钟左右


2006年9月6日星期三

对变量、函数、局部、全局等概念的肤浅认识

对变量、函数、局部、全局等概念的肤浅认识
qjchen
前段时间论坛有过一个函数变量的讨论,让我感触颇深
最近又编了一个很长很长的代码,
因此对变量,函数,局部,全局等概念觉得有必要比较认真的反思一下

于是,做了如下的一些测试,得到了一些体会
由于我是业余编程,本来就是靠蛮劲在编程的,二来Lisp这种语言的函数和变量是同一概念,搞得自己也比较模糊
因此得到的这些看法很肤浅,各位可能早就思考过了,见笑见笑
各位可以先看代码,估算一下结果,假如各位估算全对的话,就完全不用看了,都是很简单的东西

1)当一个函数没有终结的时候,这个函数内的局部变量可以被其他子程序所调用。
这个问题的范例代码是:
[code]
(defun c:test (/ a b)
(setq a 1
b 2
)
(fun 0 1)
)

(defun fun (x y)
(+ (+ x a) (+ y b))
)
[/code]
我原来一直以为中途跑出test去fun中,局部变量会丢失,现在看起来是错误的。
只要这个程序没有终结,里面的各种变量都存在内存空间,只有程序终结了,变量才被清空。

2)在defun里面的定义为局部变量的defun函数不能被其他函数调用
这个问题的范例代码是:
[code]
(defun c:test ()
(setq x (ee 2))
)

(defun fun1 ()
(defun ee (x)
(+ x 6)
)
)
[/code]
可以看出是没有结果的,以前不大明白为什么要把一段那么长的defun写在别的defun里面,
现在觉得可能有些作用,起码这些函数不会和别的变量或者函数同名,而且可能也起到节省内存空间的作用。
这个可以通过在命令行输入!fun1和!ee来认知

3)其实Lisp里面的函数和变量几乎都是一样的,可能这就是Lisp的本质吧,一种表结构的语言
[code]
(defun c:test (/ x)
(setq x (fun1 5))
(princ "\n x = ") (princ x);Erase_DV
(getstring "\nPress Enter to continue...");Erase_DV
(setq xx (eee 6))
(princ "\n xx = ") (princ xx);Erase_DV
(getstring "\nPress Enter to continue...");Erase_DV
)

(defun fun1 (y)
(defun eee (x)
(+ x 6)
)
(eee y)
)
[/code]
可以看出,是都有结果的,所以呢,刚才(2)中提到的defun中的defun不能被其他程序调用的情况要加适用条件了
这个适用条件就是“局部变量”
在这个例子中,假如先调用eee的话是不行的,但是先调用了fun1之后,eee由于不是fun1的局部变量,
就存在了内存空间了,没有被清除

4)传递变量在函数终结时被清空
[code]
;;---------------------------------
(defun c:test ()
(setq a 5
b 6
)
(setq c (fun2 1 2))
(princ "\n a = ") (princ a);Erase_DV
(princ "\n b = ") (princ b);Erase_DV
(getstring "\nPress Enter to continue...");Erase_DV

)
(defun fun2 (a b)
(princ "\n a = ") (princ a);Erase_DV
(princ "\n b = ") (princ b);Erase_DV
(getstring "\nPress Enter to continue...");Erase_DV
(list (+ a 1) (+ b 2))
)
[/code]
可以看出fun2中的a b在fun2结束之后就不复存在了,所以传递变量只是临时存在这个引用函数中,与其他变量同名也无妨


5)总结
在写了上面一堆东西之后,好像突然间想通了,又好像白写了,这个应该就是认知的曲折过程吧
只要掌握了---Lisp中变量和函数是等同的,局部变量(函数)在函数结束后才被清空,全局变量则在关闭图形时清空,
传递变量不影响同名变量 这几个原则,理解起来就轻松一些了。
一时间的乱写,不对之处请指正。
我也会继续做测试。

Lisplink 2007发布

一直以来用firefox连接不到www.caelink.com/lisplink.htm, 以为它倒闭了,很伤心,刚才用torpark居然就连接上了,还意外发现lisplink出新版本了,就在2006.7.24,出了一个适应2007的 2007.02的版本,最近遇到的05,06,07cad中lisplink的ctrl+A无法导入的问题终于可以解决了,且好好试试,看看有什么新功 能。

一个非常好用的免费cad热键定义程序

大家可能很熟悉autohook这个软件吧,我也用了许多年了,但它毕竟是一个共享收费软件,用起来总是不大自在。
最近在外国论坛逛的时候,友人推荐了这个软件,由Chuck Gabriel编写的arx程序-Hotkeys
下面是我对它自述文件的翻译
使用是很简单的

HotKeys 4.0 -自述文件

Asdkhotkeys.arx 是一个objectarx应用程序,它允许你对不同按键的组合指派特定功能。它使用ObjectARX 2000 SDK进行编写,因此只支持AutoCAD 2000和AutoCAD 2002。(译者注:2004版本的hotkeys 2004可以支持autocad2004)
-----------------------------------------------------------------------------------------
要开启该程序,在命令行键入KEYSON; 而关闭它们则采用KEYSOFF。
在命令行下键入KEYSTOGGLE或者按CTRL+K可切换热键。
在命令行下键入GETKEYS,可得知当前的热键定义。
在命令行下键入 KEYSCONFIG,可以配置热键(包括定义文件的位置,是否在AutoCAD自动加载,大小写是否影响热键等)
在命令行键入EDITKEYS,可以打开热键编辑器HotKeys Editor(译者注: 可以通过图形界面定义热键或者编辑xml定义热键,其中某些键只能在xml中定义,比如tab键)。
注意∶ 除AutoCAD中允许用户输入空格键的环境外,所定义的命令流中的空格符将被看成是回车。
如果需要在的命令流中插入强制退出,那么必须采用' | '垂直杆符号。
除非希望人为地结束命令(比如人为输入层名称并按回车键),否则命令流应该以空格或者硬返回作为终止。
命令流可以是任何你可以在AutoCAD命令行中键入的东西(包括Lisp表达式)。
-----------------------------------------------------------------------------------------

默认情况下, HotKeys会在AutoCAD软件启动时自动加载。 可以通过keysconfig命令的选项对话框来进行配置。
安装会产生一个键定义样例文件( HotKeys.xml),默认情况下,HotKeys用这个文件来对热键进行定义,可以通过选项对话框来配置选用其他定义文件。热键定义文件可以是你喜欢的任何名称,也不必位于AutoCAD搜索路径下。
这个版本的热键定义文件采用xml作为其文件格式。 如果你有以前版本中的热键定义文件,那么在你第一次试图将它载入AutoCAD中或者用HotKeysEdit打开时,它将会被备份并转化为xml文件。

--------------------------------------------------------------------------------
所有自从第一个版本以来的HotKeys修正完整列表,可参看应用程序目录中的" Revision History.txt "。
Enjoy~
Chuck Gabriel
crgabrieljr@_carolina.rr.com