`
sjgau
  • 浏览: 96560 次
  • 性别: Icon_minigender_1
  • 来自: 台灣省 台北市
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

介紹一下 AutoLISP 程式

阅读更多
有學生問到一個 AutoLISP 程式設計的需求,
這是一個很典型的 AutoLISP 題目,非常適合用來教學,
所以,把它 po 在這邊分享。
程式裡面已經有詳細的注解,他的目的是 讓使用者在
AutoCAD 裡面選擇一些圖元,這個程式會幫他加總線段的
總長度,大家 欣賞欣賞。

cpp 代码
  1. ; file: sum-01.LSP   
  2.   
  3. ; (cal-dist p1 p2)   
  4. (defun cal-dist(p1 p2 / x1 x2 y1 y2 dx dy)   
  5.   (setq x1 (car p1) x2 (car p2)   
  6.     y1 (cadr p1) y2 (cadr p2))   
  7.   (setq dx (- x2 x1) dy (- y2 y1))   
  8.   
  9.   (eval (sqrt (+ (* dx dx) (* dy dy))))   
  10.   ); end of cal-dist()   
  11. ; -----------------------------------------------   
  12.   
  13. (defun c:sum-line( / s1 l1 p1 p2)   
  14.   (princ "\nSelect some LINEs: ")   
  15.   (setq s1 (ssget))   
  16.   (setq l1 (sslength s1))   
  17.   
  18.   ; for i=0 to (i < l1) do ...   
  19.   (setq i 0 l2 0 sum1 0.0)   
  20.   (while (< i l1)   
  21.     (setq e1 (ssname s1 i)); get ent. name   
  22.     (setq et1 (entget e1)); get ent. content   
  23.   
  24.     (setq str1 (cdr (assoc 0 et1)) ); get ent. type, LINE or CIRCLE   
  25.     (if (eq str1 "LINE")   
  26.       (progn   
  27.     (setq p1 (cdr (assoc 10 et1)))   
  28.     (setq p2 (cdr (assoc 11 et1)))   
  29.     (setq sum1 (+ sum1 (cal-dist p1 p2)))   
  30.        
  31.         (setq l2 (1+ l2))   
  32.     ); end progn   
  33.       ); end if  
  34.   
  35.     (setq i (1+ i))   
  36.     ); end of while  
  37.   
  38.   (princ (strcat "\nNumber of LINEs be sumed: " (itoa l2) "\n"))   
  39.   (princ (strcat "Total length= " (rtos sum1 2 6 ) "\n" ))   
  40.      
  41.   (princ)   
  42.   ); end of sum-line()   
  43. ; end of file   
分享到:
评论
7 楼 sjgau 2006-12-16  
jxb8901 写道
让我回想起了N年前的那一段时光,说来我还是通过autolisp才走进编程的大门,此后一发不可收拾。
现在FP好似又热起来了,但当时写autolisp时根本不知道她和函数式编程有什么关系,而且一直也都是把autlisp当作命令式语言来使用。
现在做编程的估计很少有人会使用autocad的,职业程序员使用autolisp的恐怕就更少了,所以楼主在这里推介autolisp,响应的人就很少。

另:楼主给的那个链接打不开


http://www.jefferypsanders.com/

我從台灣 連過去 ,很容易啊!從來沒有問題。
他也有提供 java, java script 的教學喔

AutoLISP 是我接觸的第 n 套語言,
我的語言學習順序是 fortran 4, BASIC, fortran 77, LISP
AutoLISP, pascal, LOGO, C,


6 楼 jxb8901 2006-12-16  
让我回想起了N年前的那一段时光,说来我还是通过autolisp才走进编程的大门,此后一发不可收拾。
现在FP好似又热起来了,但当时写autolisp时根本不知道她和函数式编程有什么关系,而且一直也都是把autlisp当作命令式语言来使用。
现在做编程的估计很少有人会使用autocad的,职业程序员使用autolisp的恐怕就更少了,所以楼主在这里推介autolisp,响应的人就很少。

另:楼主给的那个链接打不开
5 楼 sjgau 2006-12-13  
lighter 写道
对于AutoLISP 程式完全不懂,门外汉


沒關係,欣賞!欣賞!
集諸子百家大成,才能融會貫通。
有好處,沒壞處。

4 楼 lighter 2006-12-13  
对于AutoLISP 程式完全不懂,门外汉
3 楼 sjgau 2006-12-13  
謝謝 回覆!
2 楼 easygodg 2006-12-13  
sjgau 写道
http://www.jefferypsanders.com/autolisptut.html

上面的網頁是 AutoLISP 程式設計 在線教學,
免費


不错,很有帮助阿
1 楼 sjgau 2006-12-12  
http://www.jefferypsanders.com/autolisptut.html

上面的網頁是 AutoLISP 程式設計 在線教學,
免費

相关推荐

    AutoLISP 编程.zip_autoLisp编程_autolisp_autolisp教程_lisp编程

    这个压缩包文件包含了关于AutoLISP编程的教程,对于想要掌握这一技能的用户来说是宝贵的资源。 在AutoLISP中,你可以编写函数和过程来控制AutoCAD,实现自动化绘图、数据管理和用户界面定制等功能。LISP(LISt ...

    AutoLisp入门教程

    这个入门教程将引导你逐步了解AutoLisp的基本概念、语法和功能,帮助你提升AutoCAD的使用效率。 首先,我们要了解Lisp语言的特点。Lisp以其独特的括号表达式(S-Expressions)而闻名,它是一种函数式编程语言,强调...

    AutoLisp-教程word版教程.rar

    这个“AutoLisp-教程word版教程.rar”压缩包文件包含了关于AutoLisp的详细教学材料,以Word文档的形式提供,方便用户学习和查阅。 在AutoLisp中,学习者会接触到以下几个核心知识点: 1. **基本概念**:首先,你...

    AutoLiSP 教程 (AutoLiSP Tutorial 中文版)

    **AutoLiSP 教程 (AutoLiSP Tutorial 中文版)** AutoLiSP 是一种专为 AutoCAD 设计的编程语言,它允许用户通过编写代码来扩展和自定义 AutoCAD 的功能。本教程旨在帮助用户深入理解 AutoLISP 的概念、语法以及其在 ...

    AutoLISP入门基本知识.pdf

    AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程,可以节省工程师很多时间。AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可...

    autolisp的入门教程+autolisp函数

    下面将详细介绍AutoLISP的入门知识以及常用函数。 **1. AutoLISP基础** AutoLISP的语法结构与传统LISP非常相似,以括号对分隔表达式。每个表达式都是一个列表,可以包含函数调用、变量、常量和其他列表。表达式的...

    autolisp培训教程

    编写AutoLISP程序并不挑环境,普通的文本编辑器如Windows记事本、PE2、PE3、DW3等都可以用于编写代码,而且它是一种直译式程序,编写完成后即可立即测试和使用,带来了即时反馈和成就感。 使用AutoLISP的动机多种...

    AutoLISP函数参考【中文版】

    在本例中,它可能包含了关于如何充分利用这个中文版AutoLISP函数参考的建议,或者对文件结构和内容的简单介绍。 AutoLISP函数涵盖了各种操作,包括数据类型处理(如原子、列表、字符串等)、数学运算、几何对象操作...

    AutoLiSP入门教程

    AutoLISP 是强化AutoCAD 最好、最直接的『程序语言』! AutoLISP 易学、易用,即使不会程序设计的AutoCAD 使用者,都能在最 短的时间内,写出令人惊讶、赞叹的功能! 学习AutoLISP 是非常容易的,对初学者而言,即使没有...

    AutoLISP视频教程(附源码).txt

    根据提供的文件信息,我们可以推断出这份材料主要围绕“AutoLISP视频教程”展开,并且包含了一些源代码示例。接下来,我们将详细探讨与AutoLISP相关的知识点。 ### AutoLISP简介 AutoLISP是一种基于LISP编程语言的...

    AutoLisp全面的AutoLISP和Visual_LISP教程PPT课件.rar

    这个“AutoLisp全面的AutoLISP和Visual_LISP教程PPT课件.rar”压缩包包含了深入学习这两种语言的资源,对理解和掌握AutoCAD二次开发有着重要的作用。 AutoLISP是一种基于LISP语言的方言,专为AutoCAD设计。它的语法...

    AutoLISP例程:读取excel文件.doc

    AutoLISP 也可以用于读取和处理 Excel 文件,这篇文章将详细介绍如何使用 AutoLISP 读取 Excel 文件。 AutoLISP 读取 Excel 文件的关键函数是 vlax-get-or-create-object、vlax-get-property、vlax-invoke-method、...

    AutoLisp精典教程非常全面的PPT学习资料.rar

    这个“AutoLisp精典教程非常全面的PPT学习资料.rar”压缩包文件包含了丰富的学习资源,帮助用户深入理解和掌握AutoLisp语言。下面,我们将详细探讨AutoLisp的基本概念、语法特性、以及它在AutoCAD中的应用。 一、...

    Autolisp_Tools 免费版2019-03-28.zip

    对于初次接触AutoLISP的用户,可以通过在线教程、书籍和论坛获取学习资料。AutoCAD官方网站和社区提供了丰富的API文档和示例代码,帮助用户快速上手。同时,由于AutoLISP的广泛应用,许多CAD用户分享了自己的代码和...

    [Lisp]AutoLISP入门教学.chm

    AutoLISP是强化AutoCAD最好、最直接的『程序语言』! AutoLISP易学、易用,即使不会程序设计的AutoCAD使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能! 若说AutoLISP的出现,是替 AutoCAD 创造一片天的『最大...

    应用AutoLisp在AutoCAD中半自动获取点坐标+使用说明

    本教程将详细介绍如何使用AutoLISP在AutoCAD中半自动获取点坐标,以及提供的程序"节点坐标获取.LSP"的使用方法。 首先,了解AutoLISP的基本语法是非常重要的。LISP语言以其独特的括号结构著称,其中函数调用和数据...

    autolisp实例

    AutoLISP是一种专门为AutoCAD设计的编程语言,它允许用户编写自定义的程序来扩展AutoCAD的功能,提高设计效率和精度。在这个“AutoLISP应用实例”中,我们将会探讨AutoLISP的基本概念、语法以及如何通过实际案例来...

Global site tag (gtag.js) - Google Analytics