明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 697|回复: 5

[源码] 求高手指点修改源码

[复制链接]
发表于 2016-4-8 11:16:02 | 显示全部楼层 |阅读模式
原帖见此
http://bbs.mjtd.com/thread-95135-4-1.html
如何改成房间名字自动拾取而不是单纯的A1A2序列


(defun c:qq (/ d ent f i lst m2 obj pt ss txt x y)
(setq TextHeight (getdist "\n输入标注文字高度:")
Textbh (getstring "\n输入编号前缀:"))
  (defun maketext (txt pt)             ; 生成文字子函数
    (entmake (list '(0 . "TEXT") (cons 62 1) (cons 10 pt) (cons 40 TextHeight) (cons 1 txt) '(41 . 0.8)))
  )
  (setvar "cmdecho" 0)
  (vl-load-com)
  (setq ss (ssget) ent (entlast))
  (command ".region" ss "")
  (setq ss (ssadd)  lst nil)
  (while (setq ent (entnext ent))
    (if (= (cdr (assoc 0 (entget ent))) "REGION")
      (setq obj (vlax-ename->vla-object ent) pt (vlax-safearray->list (vlax-variant-value (vla-get-centroid obj)))
            m2 (rtos (vla-get-area obj) 2 2) d (rtos (vla-get-perimeter obj) 2 2) lst (cons (list pt m2 d) lst)
      )
    )
  )
  (command ".undo" "")
  (setq lst (vl-sort lst (function (lambda (x y)(< (car (car x)) (car (car y)))))))
  (setq lst (vl-sort lst (function (lambda (x y)(> (cadr (car x)) (cadr (car y)))))))
  (setq f (getfiled "指定输出文件路径" "" "xls" 1) f (open f "a"))
  (write-line "编号\t周长(mm)\t面积(mm2)" f)
  (setq i 1)
  (foreach x lst
    (setq pt (car x) m2 (cadr x) d (caddr x))
    (maketext (strcat Textbh (itoa i)) (list (car pt) (+ (cadr pt) (* 1.2 TextHeight))))
    (maketext (strcat "L=" d "mm") pt)
    (maketext (strcat "S=" m2 "mm2") (list (car pt) (- (cadr pt) (* 1.2 TextHeight))))
    (write-line (strcat (strcat Textbh (itoa i)) "\t" d "\t" m2) f)
    (setq i (1+ i))
  )
  (close f)
  (princ)
)


该贴已经同步到 lucksony的微博

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2016-4-8 12:00:51 | 显示全部楼层
都是高手呀。来了这么多年的CAD ,居然看不懂这是啥。
 楼主| 发表于 2016-4-8 12:48:13 | 显示全部楼层
上去上去@langjs @hao3ren
发表于 2016-4-8 13:21:19 | 显示全部楼层
修改什么???
 楼主| 发表于 2016-4-8 13:32:31 | 显示全部楼层
lxw320 发表于 2016-4-8 13:21
修改什么???

修改可以拾取房间名字到EXCEL而不再只是单纯的 A1要变成对应的房间名字。。
编号        周长(mm)        面积(mm2)              
A1        23200        32784375
A2        14500        13078125
A3        11548.75        8020965.41
A4        66300        59349374.04
A5        17750        16226777.1
A6        25000        33999992.37
A7        26850        44313737
A8        61746.4        84060628.65
A9        41600        32199986.88
A10        14200        12400000
A11        17550        17325000
A12        12950        9900000
 楼主| 发表于 2016-4-8 18:55:20 | 显示全部楼层
顶上去顶上去顶上去
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 12:58 , Processed in 0.169270 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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