明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: zcenc

关于测算建筑面积的lsp,逛透论坛尚无看到符合要求的,请高手出手!

  [复制链接]
发表于 2011-12-31 15:39:14 | 显示全部楼层
可别!今晚觉睡不好可就只能明年再睡了。
 楼主| 发表于 2011-12-31 15:56:04 | 显示全部楼层
一个下午都没做事,就想这个了
(cons 40 300 (getvar "TEXTSIZE"))这样出了这个“选择文字插入点:; 错误: 参数太多”不行啊,还有面积单位还是劳烦vormittag 再看看,指条明路

点评

(cons 40 300) 就行了  发表于 2011-12-31 16:43
 楼主| 发表于 2011-12-31 15:59:13 | 显示全部楼层
以下是从论坛上下的源码,挺不错的,就是不知怎么嫁接

(defun c:test (/ AREA_H      AREA_WS  ERRHAN      NEWENTLAST
   OBJ      OBJ_AREA  OBJ_I      OBJ_NAME
   OBJ_VLA     OLDCMDECHO  OLDDELOBJ   OLDENTLAST
   PT JD
  )
  (vl-load-com)
  (setq obj (ssget '((0 . "*POLYLINE"))))
  (if obj
    (progn
      (setq obj_i -1)
      (setq oldcmdecho (getvar "cmdecho"))
      (setq oldDELOBJ (getvar "DELOBJ"))
      (setvar "cmdecho" 0) ;_禁止回显
      (setvar "DELOBJ" 0) ;_控制创建面域保留原对象
      (setq errhan '()) ;_不能创建面域的图元句柄表
      (setq area_ws 3) ;_面积的小数位数
      (setq area_h 300) ;_面积文字的高度
      (setq jd 1e6);_面积除以这个数 1e6=10的6次方 需要自己设定
      (repeat (sslength obj)
(setq obj_name (ssname obj (setq obj_i (1+ obj_i)))) ;_图元名
(setq obj_vla (vlax-ename->vla-object obj_name)) ;_Vla对象
(setq oldentlast (entlast))
(command "_region" obj_name "") ;_创建面域
(setq newentlast (entlast))
(if (equal oldentlast newentlast) ;_如果创建面域不成功
   (progn
     (setq errhan (cons (cdr (assoc 5 (entget obj_name))) errhan))
     )
   (progn
     (setq obj_area (vla-get-Area obj_vla)) ;_面积
     (setq  obj_area (/ obj_area jd))
     (setq pt (vlax-safearray->list
         (vlax-variant-value
    (vla-get-centroid
      (vlax-ename->vla-object newentlast)
    )
         )
       )
     ) ;_取得面域或实体的面积或质量的中点
     (command "-text"
       "j"
       "mc"
       pt
       area_h
       0
       (rtos obj_area 2 area_ws)
     )
     (entdel newentlast)
   )
)
      )
      (if errhan
(progn
   (princ "\n没有标注面积的图元句柄列表:\n")
   (princ errhan)
)
      )
      (setvar "DELOBJ" oldDELOBJ)
      (setvar "cmdecho" oldcmdecho)
    )
  )
  (princ)
)
 楼主| 发表于 2011-12-31 16:34:26 | 显示全部楼层
本帖最后由 zcenc 于 2011-12-31 16:37 编辑

字体大小终于搞定了,就剩面积单位了!vormittag 兄,我在线等啊!
是改这句不?“ (setq a    (+ a1 a2 a3)
                  dzin (getvar "dimzin")
   )”

点评

(setq a (* factor (+ a1 a2 a3))) factor就是单位换算因子  发表于 2011-12-31 16:42
 楼主| 发表于 2011-12-31 17:04:38 | 显示全部楼层
zcenc 发表于 2011-12-31 16:34
字体大小终于搞定了,就剩面积单位了!vormittag 兄,我在线等啊!
是改这句不?“ (setq a    (+ a1 a2 a ...

还是不明白啊,试过了,老是语法错误!真是要睡不着觉了
vormittag 兄还是再帮一下吧,把那句完整的替换给我吧!

点评

setq 的基本语法看一看,例子里面把两句合成一句写了。  发表于 2011-12-31 17:16
发表于 2011-12-31 17:18:46 | 显示全部楼层
算了,我服了。
  1. (setq a  (+ a1 a2 a3)
  2.         dzin (getvar "dimzin")
  3. )
改成
  1. (setq a  (* factor (+ a1 a2 a3))
  2.         dzin (getvar "dimzin")
  3. )
 楼主| 发表于 2011-12-31 17:22:13 | 显示全部楼层
真不好意思,太菜了,文盲一个,见谅!
 楼主| 发表于 2011-12-31 17:49:43 | 显示全部楼层
唉,我放弃了!
 楼主| 发表于 2012-3-12 15:59:01 | 显示全部楼层
再次顶起!
 楼主| 发表于 2012-3-12 15:59:47 | 显示全部楼层
有没有人改个完美的??????
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-8 18:27 , Processed in 0.177123 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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