明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1446|回复: 4

[源码] (新人贴)统计块的数量并绘制成表格

[复制链接]
发表于 2019-9-30 15:25:56 | 显示全部楼层 |阅读模式
新人发帖 统计块的数量并绘制成表格  各位大佬看看我的源码  可以的话请给出建议!谢谢
  1. (defun c:tt()
  2.   (acad-activex-base)
  3.   (setq old_err *error*)
  4.   (setq os (getvar "osmode"))
  5.   (setvar "osmode" 0)
  6.   (setq blkobj (vla-get-blocks dwgobj))
  7.   (setq blklist nil blknum_list nil)
  8.   (setq pt1 (getpoint "\n表格左上角点"))
  9.   (setq pt2 (polar pt1 0 60))
  10.   (setq pt3 (polar pt2 (* pi 1.5) 10))
  11.   (setq pt4 (polar pt3 pi 60))
  12.   (setq ww (distance pt1 pt2))
  13.   (setq hh (distance pt1 pt4))
  14.   (command "pline" pt1 pt2 pt3 pt4 "c")
  15.   (setq pa (polar pt1 0 (/ ww 2)))
  16.   (setq pb (polar pa (* pi 1.5) hh))
  17.   (command "line" pa pb "")
  18.   (command "text" "m" (inters pt1 pb pt4 pa) (/ hh 2) "0" "图块名称")
  19.   (command "text" "m" (inters pa pt3 pb pt2) (/ hh 2) "0" "数量")
  20.   (vlax-for sobj blkobj
  21.     (setq blkn (vla-get-name sobj))
  22.     (if (/= (substr blkn 1 1) "*")
  23.       (progn
  24.   (setq ss (ssget "X" (list '(0 . "insert") (cons 2 blkn))))
  25.   (if ss
  26.     (setq nns (sslength ss))
  27.     )
  28.   (setq pt1 pt4 pt2 pt3 pa pb)
  29.   (setq pt3 (polar pt2 (* pi 1.5) hh))
  30.   (setq pt4 (polar pt1 (* pi 1.5) hh))
  31.   (setq pb (polar pa (* pi 1.5) hh))
  32.   (command "pline" pt1 pt2 pt3 pt4 "c")
  33.   (command "line" pa pb "")
  34.   (command "text" "m" (inters pt1 pb pt4 pa) (/ hh 2) "0" blkn)
  35.   (command "text" "m" (inters pa pt3 pb pt2) (/ hh 2) "0" (rtos nns))
  36.   )
  37.       )
  38.     )
  39.   (acad-activex-exit)
  40.   (setvar "osmode" os)
  41.   (prin1)
  42.   )

  43. (defun acad-activex-base()
  44.   (vl-load-com)
  45.   (setq acadobj (vlax-get-acad-object))
  46.   (setq dwgobj (vla-get-ActiveDocument acadobj))
  47.   (setq mspace (vla-get-ModelSpace dwgobj))
  48.   )

  49. (defun acad-activex-exit()
  50.   (vlax-release-object acadobj)
  51.   )

  52. (defun *error*(st)
  53.   (if (and (/= st "Function cancelled")
  54.      (/= st "quit / exit abort"))
  55.     (princ (strcat "错误!" st))
  56.     )
  57.   (setq *error* old_err)
  58.   (setvar "osmode" os)
  59.   )


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-5-10 17:08:32 | 显示全部楼层
回复 支持 1 反对 0

使用道具 举报

发表于 2019-10-2 14:24:54 | 显示全部楼层
鼓励一下,顺便看下我有多少币
发表于 2019-10-7 09:29:35 | 显示全部楼层
有问题啊,NNS的值是nil
发表于 2022-5-10 13:18:47 | 显示全部楼层
能给选择区域内的块统计吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 13:26 , Processed in 0.180116 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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