明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1117|回复: 4

lisp菜鸟求助一个问题,望各大侠帮忙

[复制链接]
发表于 2010-11-7 18:25:00 | 显示全部楼层 |阅读模式

我是做门窗的,想弄个lisp程序能判断玻璃是否需要钢化,如果钢化则标上符号,但我是个菜鸟,菜鸟都算不上,请各大侠给帮个忙

这是我照葫芦画瓢瞎弄上的,运行总是报错,; 错误: 参数类型错误: FILE

玻璃是矩形,单位是毫米,首先求出玻璃面积并转化到平方米单位,然后判断玻璃面积是否大于1.5平方,如果大于,那么在玻璃上标注两个星就可以(**),如果小于,则提示“普通玻璃无需钢化”即可。

 

(defun c:gh();LISP判断玻璃是否钢化程序
(Vl-load-com)

  (setq area (vla-get-area (vlax-ename->vla-object (entlast))))
  (princ area)
    (setq areab (/ area 1000000))


  if(( < 1.5 areab)   ;判断是否大于1.5平方,就是这块系统报错
          ( progn

          (setq ss (getpoint()))       ;指定插入点

          (command "text" ss  "**");语法好像是不对,不知道咋改

          (princ areab "双钢化")

          )
       (princ areab"普通玻璃无需钢化")
     )
)

发表于 2010-11-7 19:54:00 | 显示全部楼层
语法问题挺多!给你个正确的,自己慢慢比较一下吧!
  1. (defun c:gh();LISP判断玻璃是否钢化程序
  2. (Vl-load-com)
  3. (princ "\n选择要判断钢化的玻璃")
  4.   (setq area (vla-get-area (vlax-ename->vla-object (car (entsel)))))
  5.   (princ area)
  6.     (setq areab (/ area 1000000))
  7.   (if( < 1.5 areab)   ;判断是否大于1.5平方,就是这块系统报错
  8.           ( progn
  9.           (setq ss (getpoint"\n指定插入点:"))       ;指定插入点
  10.           (command "text" ss 1500 0 "**" "");语法好像是不对,不知道咋改
  11.           (princ areab )(princ " 双钢化")
  12.           )
  13.    (progn
  14.        (princ areab) (princ " 普通玻璃无需钢化")
  15.        )
  16.      )
  17.   (princ)
  18. )

 楼主| 发表于 2010-11-8 11:07:00 | 显示全部楼层
真是太感谢大侠了,给我解决了老大的问题,非常感谢,真的非常感谢!
 楼主| 发表于 2010-11-8 16:31:00 | 显示全部楼层

劳烦大侠再帮我看一下,下边的程序我做了些修改,想实现的功能是先画出矩形玻璃,然后判断这个玻璃是否需要钢化,但是出了问题,在entsel,entlast的位置出了问题entsel就正确,entlast就错误,请教大侠该怎么更改

 

(defun c:gh1();LISP判断玻璃是否钢化程序
(Vl-load-com)
   (setq pa (getpoint"\n矩形玻璃插入点:"))
   (setq ww 1320) ;随便设的玻璃尺寸
   (setq hh 1200)
   (setq pb (polar pa 0 ww))
   (setq pc (polar pb (/ pi 2) hh))
   (setq pd (polar pc pi ww))
   (command "_rectang" pa pc ) ;画矩形玻璃
   (setq area (vla-get-area (vlax-ename->vla-object (car (entsel)))))  ;好像是这块调用有问题entsel,entlast
   (setq areab (/ area 1000000))
  (if( < 1.5 areab)   ;判断是否大于1.5平方
          ( progn
          (setq ttmp (polar pb pi 500))    
   (setq ss (polar ttmp (/ pi 2) 60))  ;插入点位置
          (command "text" ss 300 0 "**" "")
          (princ areab )(princ " 双钢化")
          )
   (progn
       (princ areab) (princ " 普通玻璃无需钢化")
       )
     )
  (princ)
)

发表于 2010-11-8 17:25:00 | 显示全部楼层

try

 

(car (entsel))

==>

(entlast)

 

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

本版积分规则

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

GMT+8, 2024-10-2 14:22 , Processed in 0.175553 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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