找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1256|回复: 6

[LISP函数]:关于lisp函数

[复制链接]
发表于 2002-11-21 10:59:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
诸位师兄,请告知或罗列一般对象的属性提取LISP函数,这对我和初学者很有帮助。谢谢!
如:直线长度、面域面积、弧长度、体的体积等等诸如此类的属性提取LISP函数。
再谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-21 11:07:15 | 显示全部楼层

Re: [LISP函数]:关于lisp函数

最初由 agang198 发布
[B]诸位师兄,请告知或罗列一般对象的属性提取LISP函数,这对我和初学者很有帮助。谢谢!
如:直线长度、面域面积、弧长度、体的体积等等诸如此类的属性提取LISP函数。
再谢! [/B]


这些没有基本的函数的,都需要在LISP提供的函数基础上,再写。

你先搜索搜索论坛,看看。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-21 12:38:25 | 显示全部楼层
统计多个多义线面积的
统计多个弧线的长度

  1. ;;———————————————————————————————————
  2. ;{start
  3. (defun c:as2 (/ N I ent ares  ss )
  4. (princ "\n 统计多义线面积")
  5.   (setvar "cmdecho" 0)
  6. (princ "   请选择统计实体")
  7.   (setq ss (ssget '((0 . "LWPOLYLINE,POLYLINE"))))
  8. (SETQ N (SSLENGTH SS))
  9. (SETQ I 0)
  10. (setq ares 0)
  11. (REPEAT N
  12.   (SETQ ENT (SSNAME SS I))
  13.   (command "area" "o" ent)
  14. (setq ares (+ ares (getvar "area")) )
  15. (setq i (1+ i))
  16. )
  17. (princ (strcat "\n计算得面积" (rtos ares 2 2 ) ))
  18. (princ)
  19. )
  20.                                         ;
  21.                                         ;end}
  22. ;;———————————————————————————————————————

  23. (defun c:getal ( / pi delta s r  num length n tlist i p1 p2 n)
  24.   (princ "求弧线段长和")
  25.   (princ "\n请选择 弧线")
  26.   (setq        s (ssget (list  '(0 . "arc"))))
  27.   (setq num (sslength s))
  28. (setq length 0)
  29. (setq pi 3.1415926)
  30.   (setq n 0)
  31.   (repeat num
  32.        (setq tlist (entget (ssname s n)))
  33.      ;;
  34.        (setq i 0)
  35.        (while (/= 40 (car(nth i tlist)))
  36.          (setq i (+ i 1))
  37.        )
  38.      (setq r (cdr (nth i tlist)))
  39.      ;(print r)
  40.      ;;
  41. (setq i 0)
  42.        (while (/= 50 (car(nth i tlist)))
  43.          (setq i (+ i 1))
  44.        )
  45.      (setq a1 (cdr (nth i tlist)))
  46.        (setq a2 (cdr (nth (+ 1 i) tlist)))
  47.   (setq delta (- a2 a1))
  48.   (if (< delta 0)
  49.       (setq delta (+ delta ( * 2.0 pi)))
  50.   )
  51.        (setq length (+ length (* r  delta)))
  52.      (setq n (+ 1 n))                     
  53.   )
  54. (princ "\n所有线段总长" )
  55. (princ length)
  56. (princ)
  57. )
  58.                                         ;
  59.                                         ;end}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-21 22:23:54 | 显示全部楼层
fylinwater.谢谢。
你的程序只是能求arc弧长,对pl.spl.cir.ell等无效。
建议看看这几个vlax函数。改写一下你的程序。
(vlax-curve-getArea curve-obj)        返回曲线中的面积
(vlax-curve-getDistAtParam
curve-obj param)        返回从曲线的起始端到指定点的曲线段长度
(vlax-curve-getDistAtPoint
curve-obj point)        返回从曲线的起始端到指定点的曲线段长度
(vlax-curve-getEndPoint
curve-obj)        返回曲线的端点(在 WCS 坐标系中)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-22 17:16:34 | 显示全部楼层
我在多个论坛发这个帖,只有在这得到回答。看来这才是真正的家!
我会认真学习的。
附上一个画圆管相贯线展开图的LISP程序以表谢意。当然它有DEBUG,一次加载只能连续正确运行4次,请指正。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-22 20:55:13 | 显示全部楼层
我那些只是统计工程量用的临时用用的正好在手边就贴出来了
不过我看了你的程序只要你逻辑上没问题应该可以正确运行的,出错的原因估计还是捕捉没有关掉
另外建议你把里面这么多的变量设置为局部变量
(DEFUN C:XGX(/ s1 s2 a A1  B1  B2  B3  B4  B5  C1  C2  C3  C4  C5  D1  D2  D3  D4  D5  E1  E2  E3  E4  E5  F1  F2  F3  F4  F5  G1  G2  G3  G4  G5  H1  H2  H3  H4  H5  I1  I2  I3  I4  I5  J1  J2  J3  J4  J5  K1  K2  K3  K4  K5  L1  L2  L3  L4  L5  M1  M2  M3  M4  M5  N1  N2  N3  N4  N5  P1  P2  P3  P4  P5  P6  P7  P8  P9  R1  R2  X1  X2  X3  X4  X5  X6  X7  X8  X9  Y1  Y2  Y3  Y4  Y5  P10  P11  Y10 )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-24 21:33:08 | 显示全部楼层
各位网兄,
       能否把各种放样展开图的具体设计思路讲一下。

谢谢!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 06:31 , Processed in 0.177224 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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