找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 815|回复: 0

[分享]:安全型NTH函数(可以处理点对)

[复制链接]
发表于 2002-11-18 16:42:38 | 显示全部楼层 |阅读模式

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

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

×
安全型NTH函数(可以处理点对)
同时把i值加1使程序更加好理解

  1. ;;———————————————————————————————————
  2. ;;#$fildname-> list.lsp
  3. ;;time-stamp-> 11:03 02-4-22 zjw
  4. ;;Copyright (C) 2001 by zjw ,WuXi Municipal Enginerring Design Institue. All Rights Reserved.

  5. ;;-------------------------------------------------
  6. ;;#$help.begin
  7. ;;##function.name->  (dd_nth I LST)
  8. ;;##keyword-> nth  获取 表 元素
  9. ;;##Description-> 安全获取表元素 不产生错误中断,但修整了参数的含义,比NTH大一
  10. ;;##Arguments.begin
  11. ;|            |;
  12. ;;##Arguments.end
  13. ;;##return->  pointlist <list> 端点表
  14. ;;##examples.begin
  15. ;| (dd_nth 1 '( 1 2)) => 1
  16.    ( (dd_nth 3 '( 1 2)) => nil     
  17.     ( (dd_nth 2 '( 1  . 2)) =>  2  |;
  18. ;;##examples.end
  19. ;;##see also->
  20. ;;#$help.end
  21. ;;-------------------------------------------------

  22. ;;##use function->
  23. ;;##use ddsysvar->
  24. (defun dd_nth ( i lst  / )
  25.   (if (= 'REAL (TYPE I)) (SETQ I (FIX I)))
  26. (if (and  (= 'INT (type i)) (= 'LIST (type lst)))
  27.   (progn
  28.   (if (/= 'LIST (type (cdr lst) ) )  
  29.       (setq lst  (list (car lst) (cdr lst))))   ;;处理点对,把点对当二个元素的表
  30.   (if (and (> i 0 )  (<= i (length lst)))
  31.    (nth (1-  i ) lst)
  32.   )

  33. )
  34.    )
  35.   
  36. )


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

本版积分规则

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

GMT+8, 2025-9-26 07:51 , Processed in 0.168163 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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