论坛首页 综合技术论坛

介紹一下 AutoLISP 程式

浏览 5865 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-11  
有學生問到一個 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   
   发表时间:2006-12-12  
http://www.jefferypsanders.com/autolisptut.html

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

0 请登录后投票
   发表时间:2006-12-13  
sjgau 写道
http://www.jefferypsanders.com/autolisptut.html

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


不错,很有帮助阿
0 请登录后投票
   发表时间:2006-12-13  
謝謝 回覆!
0 请登录后投票
   发表时间:2006-12-13  
对于AutoLISP 程式完全不懂,门外汉
0 请登录后投票
   发表时间:2006-12-13  
lighter 写道
对于AutoLISP 程式完全不懂,门外汉


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

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

另:楼主给的那个链接打不开
0 请登录后投票
   发表时间: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,


0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics