vormittag 发表于 2011-12-31 15:39:14

可别!今晚觉睡不好可就只能明年再睡了。

zcenc 发表于 2011-12-31 15:56:04

一个下午都没做事,就想这个了
(cons 40 300 (getvar "TEXTSIZE"))这样出了这个“选择文字插入点:; 错误: 参数太多”不行啊,还有面积单位还是劳烦vormittag 再看看,指条明路

zcenc 发表于 2011-12-31 15:59:13

以下是从论坛上下的源码,挺不错的,就是不知怎么嫁接

(defun c:test (/ AREA_H      AREA_WSERRHAN      NEWENTLAST
   OBJ      OBJ_AREAOBJ_I      OBJ_NAME
   OBJ_VLA   OLDCMDECHOOLDDELOBJ   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)) ;_面积
   (setqobj_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)
)

zcenc 发表于 2011-12-31 16:34:26

本帖最后由 zcenc 于 2011-12-31 16:37 编辑

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

zcenc 发表于 2011-12-31 17:04:38

zcenc 发表于 2011-12-31 16:34 static/image/common/back.gif
字体大小终于搞定了,就剩面积单位了!vormittag 兄,我在线等啊!
是改这句不?“ (setq a    (+ a1 a2 a ...

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

vormittag 发表于 2011-12-31 17:18:46

算了,我服了。(setq a(+ a1 a2 a3)
      dzin (getvar "dimzin")
)改成(setq a(* factor (+ a1 a2 a3))
      dzin (getvar "dimzin")
)

zcenc 发表于 2011-12-31 17:22:13

真不好意思,太菜了,文盲一个,见谅!

zcenc 发表于 2011-12-31 17:49:43

唉,我放弃了!

zcenc 发表于 2012-3-12 15:59:01

再次顶起!

zcenc 发表于 2012-3-12 15:59:47

有没有人改个完美的??????
页: 1 [2] 3
查看完整版本: 关于测算建筑面积的lsp,逛透论坛尚无看到符合要求的,请高手出手!