RyanAtNelco 发表于 2022-7-6 14:23:24

线型长度计算器

你好
 
有没有人可以帮我做一个例程,选择某个线型的所有线条,并显示该线型所有线条的总长度?我最初试图用字段和表来实现这一点,但我使用的特定文件中有太多行,我希望能够在一般情况下做到这一点,而不必为每一行设置字段。
 
万分感谢!

Commandobill 发表于 2022-7-6 14:27:14

每种线型都是“bylayer”吗?它们是单独设置的还是两者的混合*旁注-我以前在沃伯恩工作过…*

RyanAtNelco 发表于 2022-7-6 14:30:55

到目前为止,它们是单独设置的,但我正在考虑制作新的层,并将其设置为“逐层”。问题是,由于所有的标准颜色都设置好了,我不得不干扰公司的笔设置,而我的公司对修改这些东西很严格。然后其他人都需要新的笔设置,作为图腾柱上的矮人,我宁愿避免公司范围内的变化=)。

RyanAtNelco 发表于 2022-7-6 14:35:27

沃伯恩在哪里?我在吉尔街的购物中心附近

Commandobill 发表于 2022-7-6 14:37:10

沿着这条路走大约2英里。我在skyworks股份有限公司工作,当然那是大约5年前的事了。我看看我能为你做些什么。。。

RyanAtNelco 发表于 2022-7-6 14:40:38

你的男人!我不想问太多,但你有什么办法可以评论出来吗?我想学习如何做自己的

Commandobill 发表于 2022-7-6 14:43:12

当然一旦得到这些数字,你打算怎么处理?您想将它们放在excel或文本文件中,还是放在dwg中?

RyanAtNelco 发表于 2022-7-6 14:46:09

excel将是完美的,它适用于一些潜在客户数量的起飞

RyanAtNelco 发表于 2022-7-6 14:50:11

哦,我也有很多线型,我想这样做来表示不同厚度的导线,你需要线型的名称吗?

Lee Mac 发表于 2022-7-6 14:54:14

我只是快速地做了这个:
 

(defun c:ltlen (/ ldef lt ss len)
(vl-load-com)
(setq ldef (cdr (assoc 2 (tblnext "LTYPE" T))))
(while
   (progn
   (setq lt
       (getstring t
         (strcat "\nSpecify Linetype <" ldef ">: ")))
   (cond ((eq "" lt) (setq lt ldef) nil) ; Exit Loop
         ((not (snvalid lt))
            (princ "\n** Linetype Name Not Valid **"))
         ((not (tblsearch "LTYPE" lt))
            (princ "\n** Linetype Not Found in Drawing **"))
         (t nil))))
(if (setq ss (ssget "_X" (list (cons 0 "LINE") (cons 6 lt))))
   (progn
   (setq len
       (apply '+
         (mapcar
         (function
             (lambda (x)
               (vla-get-Length x)))
         (mapcar 'vlax-ename->vla-object
             (mapcar 'cadr (ssnamex ss))))))
   (princ (strcat "\n<< Total Length of " (rtos (sslength ss) 2 0)
                  " Lines is: " (rtos len 2 2))))
   (princ (strcat "\n<< No Lines Found With Linetype " lt " >>")))
(princ))
页: [1] 2
查看完整版本: 线型长度计算器