线型长度计算器
你好有没有人可以帮我做一个例程,选择某个线型的所有线条,并显示该线型所有线条的总长度?我最初试图用字段和表来实现这一点,但我使用的特定文件中有太多行,我希望能够在一般情况下做到这一点,而不必为每一行设置字段。
万分感谢! 每种线型都是“bylayer”吗?它们是单独设置的还是两者的混合*旁注-我以前在沃伯恩工作过…* 到目前为止,它们是单独设置的,但我正在考虑制作新的层,并将其设置为“逐层”。问题是,由于所有的标准颜色都设置好了,我不得不干扰公司的笔设置,而我的公司对修改这些东西很严格。然后其他人都需要新的笔设置,作为图腾柱上的矮人,我宁愿避免公司范围内的变化=)。 沃伯恩在哪里?我在吉尔街的购物中心附近 沿着这条路走大约2英里。我在skyworks股份有限公司工作,当然那是大约5年前的事了。我看看我能为你做些什么。。。 你的男人!我不想问太多,但你有什么办法可以评论出来吗?我想学习如何做自己的 当然一旦得到这些数字,你打算怎么处理?您想将它们放在excel或文本文件中,还是放在dwg中? excel将是完美的,它适用于一些潜在客户数量的起飞 哦,我也有很多线型,我想这样做来表示不同厚度的导线,你需要线型的名称吗? 我只是快速地做了这个:
(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