明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 498|回复: 4

[提问] 菜鸟小白问个lisp的问题

[复制链接]
发表于 2016-2-4 16:06 | 显示全部楼层 |阅读模式
  1. (defun c:mj()
  2.    (setq pt (getpoint "积书写位置:" ))
  3.    (setq sta (bpoly pt))
  4.    (if
  5.      (= sta nil)
  6.      (exit))         
  7.    (command "area" "" "")
  8.    (setq qarea (rtos (getvar "area") 2 2)) 
  9.    (command "layer" "m" "面积" "co" "" "" "")
  10.    (command "text" pt "0.4" "" (strcat "=" qarea))
  11. )


错误在哪
发表于 2016-2-4 16:09 | 显示全部楼层
没有bpoly这个含数

点评

有该函数: (bpoly pt [vec])  发表于 2016-2-24 14:28
 楼主| 发表于 2016-2-4 16:49 | 显示全部楼层
啵浪鼓 发表于 2016-2-4 16:09
没有bpoly这个含数

但是在visual里显示是蓝色
发表于 2016-2-4 17:17 | 显示全部楼层
好吧,bploy是指令,我以为是涵数

(defun c:mj()
   (setq pt (getpoint "积书写位置:" ))
   (setq sta (bpoly pt))
   (if
     (= sta nil)
     (exit))         
   (command "area" "e" sta)
   (setq qarea (rtos (getvar "area") 2 2)) 
   (command "layer" "m" "面积" "co" "" "" )
   (command "text" pt "0.4" "" (strcat "=" qarea))
)
发表于 2016-2-24 11:59 | 显示全部楼层
本帖最后由 shh_188 于 2016-2-24 12:01 编辑

  1. (defun c:mj(/ pt sta qarea)
  2.    (setq pt (getpoint "积书写位置:" ))
  3.    (setq sta (bpoly pt))
  4.    (if (= (type sta) 'ENAME)
  5.      (if (entget sta)
  6.        (progn
  7.    (command "area" "e" sta)
  8.    (setq qarea (rtos (getvar "area") 2 2)) 
  9.    (command "layer" "m" "面积" "co" "" "" )
  10.    (command "text" pt "0.4" "" (strcat "=" qarea))
  11.    (entdel sta)
  12.        )
  13.      )
  14.    )
  15. )

你试试看这个吧
你的问题有2个:
一个是对bpoly的返回值注意得不够
一个是,if函数里只能有符合条件与不符合条件的2组表达式,如果表达式超过一个函数的行范围,就要用(progn)括起来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-18 13:46 , Processed in 0.285101 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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