明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7296|回复: 28

[基础] 发个子程序,练习lambda、mapcar、apply的用法

    [复制链接]
发表于 2014-4-1 20:09 | 显示全部楼层 |阅读模式
本帖最后由 菜卷鱼 于 2014-4-1 20:11 编辑

  1. (defun centerp (ss )                    ;;;获得图元中心点,结果返回一个点
  2. (mapcar '(lambda (x)(/ x 2))
  3. (apply '(lambda (x1 x2)(mapcar '+ x1 x2)) (cornerp ss)) )
  4. )

  5. (defun cornerp(entname / ptlist)                  ;;;获得图元对角点,结果返回两个点(点表)
  6. (vla-getboundingbox (vlax-ename->vla-object entname) 'entpl 'entpr)
  7. (setq ptlist (mapcar 'vlax-safearray->list (list entpl entpr)))
  8. (mapcar '(lambda (x) (trans x 0 1)) ptlist)
  9. )

评分

参与人数 2明经币 +2 收起 理由
lee50310 + 1 赞一个!
冰之绝恋 + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-8-23 19:02 | 显示全部楼层
wangph 发表于 2015-11-14 21:39
请问代码中(trans x 0 1)起到什么作用?为什么用这个?

坐标点的转换。把点从世界坐标系转成用户定义的坐标系的点
发表于 2021-6-23 14:24 | 显示全部楼层
vlisp2012 发表于 2014-4-2 08:00
这三个命令,一直很少应用,学习了!

lisp是表语言  这三个函数很重要
发表于 2021-9-27 08:11 | 显示全部楼层
请教一下,表示循环的语句,还有哪几种形式?
repeat
foreach
while
mapcar
vlax-for
发表于 2014-4-2 08:00 | 显示全部楼层
这三个命令,一直很少应用,学习了!
发表于 2014-4-2 10:55 | 显示全部楼层
这几个+foreach都是比较给力的的。还没有消化。
发表于 2014-4-2 14:23 | 显示全部楼层
顶一下,顺便学习
发表于 2014-4-2 16:39 | 显示全部楼层
目测楼主你对lambda、mapcar、apply  的用法很有研究。。
本菜鸟还在努力学习中。。。
谢谢指导
发表于 2014-4-3 07:34 | 显示全部楼层
谢谢楼主的奉献!
发表于 2015-11-12 09:18 | 显示全部楼层
正好学习这3个函数的运用。
发表于 2015-11-14 21:39 | 显示全部楼层
请问代码中(trans x 0 1)起到什么作用?为什么用这个?
发表于 2016-2-11 22:04 | 显示全部楼层
很好的程序,谢谢分享
发表于 2016-2-11 23:19 | 显示全部楼层
来学习学习!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-26 16:23 , Processed in 0.361270 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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