有學生問到一個 AutoLISP 程式設計的需求,
這是一個很典型的 AutoLISP 題目,非常適合用來教學,
所以,把它 po 在這邊分享。
程式裡面已經有詳細的注解,他的目的是 讓使用者在
AutoCAD 裡面選擇一些圖元,這個程式會幫他加總線段的
總長度,大家 欣賞欣賞。
cpp 代码
- ; file: sum-01.LSP
-
- ; (cal-dist p1 p2)
- (defun cal-dist(p1 p2 / x1 x2 y1 y2 dx dy)
- (setq x1 (car p1) x2 (car p2)
- y1 (cadr p1) y2 (cadr p2))
- (setq dx (- x2 x1) dy (- y2 y1))
-
- (eval (sqrt (+ (* dx dx) (* dy dy))))
- ); end of cal-dist()
- ; -----------------------------------------------
-
- (defun c:sum-line( / s1 l1 p1 p2)
- (princ "\nSelect some LINEs: ")
- (setq s1 (ssget))
- (setq l1 (sslength s1))
-
- ; for i=0 to (i < l1) do ...
- (setq i 0 l2 0 sum1 0.0)
- (while (< i l1)
- (setq e1 (ssname s1 i)); get ent. name
- (setq et1 (entget e1)); get ent. content
-
- (setq str1 (cdr (assoc 0 et1)) ); get ent. type, LINE or CIRCLE
- (if (eq str1 "LINE")
- (progn
- (setq p1 (cdr (assoc 10 et1)))
- (setq p2 (cdr (assoc 11 et1)))
- (setq sum1 (+ sum1 (cal-dist p1 p2)))
-
- (setq l2 (1+ l2))
- ); end progn
- ); end if
-
- (setq i (1+ i))
- ); end of while
-
- (princ (strcat "\nNumber of LINEs be sumed: " (itoa l2) "\n"))
- (princ (strcat "Total length= " (rtos sum1 2 6 ) "\n" ))
-
- (princ)
- ); end of sum-line()
- ; end of file
分享到:
相关推荐
这个压缩包文件包含了关于AutoLISP编程的教程,对于想要掌握这一技能的用户来说是宝贵的资源。 在AutoLISP中,你可以编写函数和过程来控制AutoCAD,实现自动化绘图、数据管理和用户界面定制等功能。LISP(LISt ...
这个入门教程将引导你逐步了解AutoLisp的基本概念、语法和功能,帮助你提升AutoCAD的使用效率。 首先,我们要了解Lisp语言的特点。Lisp以其独特的括号表达式(S-Expressions)而闻名,它是一种函数式编程语言,强调...
第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章...
这个“AutoLisp-教程word版教程.rar”压缩包文件包含了关于AutoLisp的详细教学材料,以Word文档的形式提供,方便用户学习和查阅。 在AutoLisp中,学习者会接触到以下几个核心知识点: 1. **基本概念**:首先,你...
**AutoLiSP 教程 (AutoLiSP Tutorial 中文版)** AutoLiSP 是一种专为 AutoCAD 设计的编程语言,它允许用户通过编写代码来扩展和自定义 AutoCAD 的功能。本教程旨在帮助用户深入理解 AutoLISP 的概念、语法以及其在 ...
AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过autolisp编程,可以节省工程师很多时间。AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可...
下面将详细介绍AutoLISP的入门知识以及常用函数。 **1. AutoLISP基础** AutoLISP的语法结构与传统LISP非常相似,以括号对分隔表达式。每个表达式都是一个列表,可以包含函数调用、变量、常量和其他列表。表达式的...
编写AutoLISP程序并不挑环境,普通的文本编辑器如Windows记事本、PE2、PE3、DW3等都可以用于编写代码,而且它是一种直译式程序,编写完成后即可立即测试和使用,带来了即时反馈和成就感。 使用AutoLISP的动机多种...
在本例中,它可能包含了关于如何充分利用这个中文版AutoLISP函数参考的建议,或者对文件结构和内容的简单介绍。 AutoLISP函数涵盖了各种操作,包括数据类型处理(如原子、列表、字符串等)、数学运算、几何对象操作...
AutoLISP 是强化AutoCAD 最好、最直接的『程序语言』! AutoLISP 易学、易用,即使不会程序设计的AutoCAD 使用者,都能在最 短的时间内,写出令人惊讶、赞叹的功能! 学习AutoLISP 是非常容易的,对初学者而言,即使没有...
根据提供的文件信息,我们可以推断出这份材料主要围绕“AutoLISP视频教程”展开,并且包含了一些源代码示例。接下来,我们将详细探讨与AutoLISP相关的知识点。 ### AutoLISP简介 AutoLISP是一种基于LISP编程语言的...
这个“AutoLisp全面的AutoLISP和Visual_LISP教程PPT课件.rar”压缩包包含了深入学习这两种语言的资源,对理解和掌握AutoCAD二次开发有着重要的作用。 AutoLISP是一种基于LISP语言的方言,专为AutoCAD设计。它的语法...
AutoLISP 也可以用于读取和处理 Excel 文件,这篇文章将详细介绍如何使用 AutoLISP 读取 Excel 文件。 AutoLISP 读取 Excel 文件的关键函数是 vlax-get-or-create-object、vlax-get-property、vlax-invoke-method、...
这个“AutoLisp精典教程非常全面的PPT学习资料.rar”压缩包文件包含了丰富的学习资源,帮助用户深入理解和掌握AutoLisp语言。下面,我们将详细探讨AutoLisp的基本概念、语法特性、以及它在AutoCAD中的应用。 一、...
对于初次接触AutoLISP的用户,可以通过在线教程、书籍和论坛获取学习资料。AutoCAD官方网站和社区提供了丰富的API文档和示例代码,帮助用户快速上手。同时,由于AutoLISP的广泛应用,许多CAD用户分享了自己的代码和...
AutoLISP是强化AutoCAD最好、最直接的『程序语言』! AutoLISP易学、易用,即使不会程序设计的AutoCAD使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能! 若说AutoLISP的出现,是替 AutoCAD 创造一片天的『最大...
本教程将详细介绍如何使用AutoLISP在AutoCAD中半自动获取点坐标,以及提供的程序"节点坐标获取.LSP"的使用方法。 首先,了解AutoLISP的基本语法是非常重要的。LISP语言以其独特的括号结构著称,其中函数调用和数据...
AutoLISP是一种专门为AutoCAD设计的编程语言,它允许用户编写自定义的程序来扩展AutoCAD的功能,提高设计效率和精度。在这个“AutoLISP应用实例”中,我们将会探讨AutoLISP的基本概念、语法以及如何通过实际案例来...
4. **即时反馈的直译式程序**:AutoLISP是一种解释型语言,用户可以即时测试程序效果,这不仅加快了开发速度,也增强了编程的乐趣。 5. **跨平台的特性**:尽管AutoCAD存在DOS版和Windows版的区别,但AutoLISP程序...