乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 68|回复: 7

[编程交流] 在att中获得块计数

[复制链接]

32

主题

98

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 16:01:10 | 显示全部楼层 |阅读模式

 
我很难找到一个选项来获得一个字段来显示一个特定块的计数。我需要这些信息,这样我就可以把它放到数据提取中。任何帮助都将不胜感激。
 
谢谢
乔伊·G
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 16:15:34 | 显示全部楼层
你好
不可能将一个字段引用到包含的许多对象和块。
回复

使用道具 举报

32

主题

98

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 16:21:45 | 显示全部楼层
我见过有人编写lisp,然后使用自定义字段应用lisp中的信息,但我无法找出2之间的联系。
 
https://forums.autodesk.com/t5/autocad-for-mac-forum/linking-a-field-to-a-block-count/td-p/6409772
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 16:32:28 | 显示全部楼层
 
这是Diesel表达式的变通方法,它不是直接字段对象。
回复

使用道具 举报

32

主题

98

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 16:36:08 | 显示全部楼层
塔尔瓦特。。。无论如何,是否需要修改此代码以查看嵌套块以同时提取计数。
 
  1. (defun c:recount (/ block_list cnt env_name)
  2. (setq block_list
  3. (list
  4. (cons '2 "Shelf_Pin")
  5. )
  6. )
  7. (foreach i block_list
  8. (if
  9. (setq ss (ssget "X" (list '(0 . "INSERT") i)))
  10. (progn
  11. (setq
  12. cnt (itoa (sslength ss))
  13. env_name (strcat "" (cdr i))
  14. )
  15. (setenv env_name cnt)
  16. (princ (strcat "\nSet " env_name " to " cnt))
  17. )
  18. (progn
  19. (setq
  20. cnt "0"
  21. env_name (strcat "" (cdr i))
  22. )
  23. (setenv env_name cnt)
  24. (princ (strcat "\nSet " env_name " to " cnt))
  25. )
  26. )
  27. )
  28. (command "_REGEN") ;_refreshes field values
  29. (princ)
  30. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:49:09 | 显示全部楼层
我从lee mac的代码开始,这不是完美的,但在测试同一块的5次。如果您有多个名称块,那么复杂性级别要高得多。是的,它需要一些错误捕捉,但需要一个开始。
 
  1. ;  get entities code by lee-mac
  2. (defun GetBlockEntities  (Blk / tStr)
  3. (if (tblsearch "BLOCK" Blk)
  4. (GetObj (tblobjname "BLOCK" Blk))))
  5. (defun GetObj  (bObj)
  6. (if (setq bObj (entnext bObj))
  7. (cons bObj (GetObj bObj))))
  1. ; Then pick a block to get block name
  2. (setq obj (vlax-ename->vla-object (car (entsel "\nPick block object"))))
  3. (setq bname (vla-get-name obj))
  4. (setq blks (GetBlockEntities bname))
  5. (setq tot 0)
  6. (repeat (setq x (length blks))
  7. (setq bobj (vlax-ename->vla-object  (nth (setq x (- x 1)) blks)))
  8. (if (= (vla-get-objectname bobj)  "AcDbBlockReference")
  9. (progn
  10. (vla-get-effectivename bobj)
  11. (setq tot (+ tot 1))
  12. )
  13. )
  14. )
  15. (alert (strcat "Blocks found " (rtos tot 2 0) "\nCalled " (vla-get-effectivename bobj)))
回复

使用道具 举报

32

主题

98

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 16:54:19 | 显示全部楼层
我在上面发布的代码与Diesel表达式链接,以更新一个字段,该字段反过来会更新数据提取表。唯一的一点是,它没有为我需要计算的特定块查找嵌套块。我发现LeeMac的代码很好用,但我不知道如何将信息输出到字段中,并让它像以前一样更新数据提取。。但这是代码。我只是在寻找一个特定的块,并让它自动更新字段,就像以前一样。谢谢你的帮助
 
  1. (defun c:nest (/ str lst tdef)
  2. (while
  3. (progn
  4. (setq str (getstring t "\nSpecify Block Name <All> :"))
  5. (cond ((eq "" str)
  6. (while (setq tdef (tblnext "BLOCK" (null tdef)))
  7. (setq lst (cons (cdr (assoc 2 tdef)) lst))) nil)
  8. ((and (snvalid str)
  9. (tblsearch "block" str))
  10. (setq lst (list str)) nil)
  11. (t (princ "\n** Block not Found **")))))
  12. (setq mstr (+ 5 (apply 'max (mapcar 'strlen lst))))
  13. (princ (strcat (Pad "\n Block" 32 mstr) "| Count"))
  14. (princ (strcat (Pad "\n " 45 mstr) (Pad "|" 45 10)))
  15. (foreach x lst
  16. (setq i (Blkcount x))
  17. (princ
  18. (strcat
  19. (Pad (strcat "\n " x) 46 mstr)
  20. (Pad "|" 46 (- 10 (strlen (itoa i)))) (itoa i))))
  21. (princ))
  22. (defun Pad (Str Chc Len)
  23. (while (< (strlen Str) Len)
  24. (setq Str (strcat Str (chr Chc))))
  25. Str)
回复

使用道具 举报

32

主题

98

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 17:06:13 | 显示全部楼层
有人有什么意见吗。。。任何帮助都将不胜感激
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 21:07 , Processed in 0.369588 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表