titoprax 发表于 2022-7-6 10:30:17

两个问题

您好,我想知道您是否可以自动回答以下两个问题。。。
 
如何获得按样式区分的线条或图层的总长度。
使用acadiso。林我创造了各种风格的线,其想法是要知道的总长度,每个自定义线现有的图纸。
 
如何自动知道图形中的块数。如果我删除或复制一个区块,我会自动知道金额吗?
如果无法自动执行此操作,是否有任何方法可以找到?

ReMark 发表于 2022-7-6 10:36:54

回复:区块计数。您看过Express Tools中的BCOUNT命令吗?
 
B计数
统计、逐项列出并以表格形式显示选定对象或整个图形中每个块的插入次数。
 
顺便说一句,这是没有必要的,也不建议论坛成员的双重职位。这只会让事情变得混乱。谢谢

migs 发表于 2022-7-6 10:46:11

第一个问题你可以试试
 
http://www.cadtutor.net/forum/showthread.php?42734-线路长度计算器
 
第二,BCOUNT命令还没有这样做吗?它给出了图形中该块的名称和数量以及图形中所有块的总数

David Bethel 发表于 2022-7-6 10:49:00

对于线路长度,我会尝试以下方法:
 

(defun c:llen (/ lay lin i dt ss en ed di dt)
(while (or (not lay)
            (not (or (wcmatch lay "*`**")
                     (wcmatch lay "*`,*")
                     (tblsearch "LAYER" lay))))
      (setq lay (strcase (getstring "\nLAyer To Calulate:   "))))

(while (or (not lin)
            (not (or (wcmatch lin "*`**")
                     (wcmatch lin "*`,*")
                     (tblsearch "LTYPE" lin))))
      (setq lin (strcase (getstring "\nLType To Calulate:   "))))

(and (setq i -1
            dt 0
            ss (ssget "X" (list (cons 0 "LINE")
                              (cons 6 lin)
                              (cons 8 lay))))
       (while (setq en (ssname ss (setq i (1+ i))))
            (setq ed (entget en)
                  di (distance (cdr (assoc 10 ed))
                                 (cdr (assoc 11 ed)))
                  dt (+ di dt)))
       (princ (strcat "\nTotal Length Of LINEs on LAyer " lay
                      " With LType " lin " = " (rtos dt 2 4))))

(if (zerop dt)
      (alert (strcat "No Entities Match The Criteria\n"
                      "LAyer " lay " - " "LTYPE " lin)))

(prin1))

 
-大卫

ReMark 发表于 2022-7-6 10:54:14

好啊现在我们有两个线程,其中一个问题是完全相同的,这是我们在这里试图避免的。
 
米格斯:我建议OP在另一个帖子中引用BCOUNT。

titoprax 发表于 2022-7-6 11:00:22

好的,对不起。
我知道Bcount命令,但我的问题是,是否可以使用表、Reactor等自动计算块数。。

Tharwat 发表于 2022-7-6 11:05:28

这是我用来数数图画中的方块的,我刚刚为你做的。
 

(defun c:THblk (/ ss ents)
;Tharwat 09.Septmber.2010
(if
(and
   (setq ss
       (ssget "_x" '((0 . "INSERT"))
        ))
         (setq ents (sslength ss)))                
(if
    (cond (
   (= ents 1)
      (alert (strcat " You have only" " " (itoa ents) " " " Block ...")
             )
    )
            (
             (> ents 1)
             (alert (strcat " You have" " " (itoa ents) " " " Blocks ..."))
             )
   )
   (princ)
   )       
   (alert " *** NO BLOCKS FOUND *** ")
)
(princ)
)

 
当做
 
塔瓦特

migs 发表于 2022-7-6 11:12:49

备注:我从未注意到你关于BCOUNT命令的其他帖子,否则我会把他推荐到那里

ReMark 发表于 2022-7-6 11:16:10

看起来这将成为事实上的主要帖子,所以我想我的论点是沉默的。我道歉。

fuccaro 发表于 2022-7-6 11:23:33

我把这两条线合并成了这一条。
Titoprax,请只发布一次问题。
页: [1] 2
查看完整版本: 两个问题