乐筑天下

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

[编程交流] 线型长度计算器

[复制链接]

7

主题

39

帖子

32

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 14:57:25 | 显示全部楼层
李-非常感谢,但是我只收到一条消息说:>
 
有def。连续的线条,我用我的自定义线型也试过了,但没有成功
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:00:41 | 显示全部楼层
 
抱歉,忘了提一下,这在设置为BYLAYER的行上不起作用-需要更多编码
 
但很快就打败了比尔
回复

使用道具 举报

7

主题

39

帖子

32

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 15:04:09 | 显示全部楼层
对于此项目,我的线将替代为特定线型。通常情况并非如此,但我的公司已经没有颜色了,我不得不修改一些新的颜色和笔设置,并获得上级的许可来更改所有这些。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 15:04:49 | 显示全部楼层
对不起,我没有评论它的功能。我必须在这个周末或星期一去上班,这一天就快结束了。
 
  1. (defun c:lte (/ drac ltype ltlst xlSheets leng pline row ss sumlen total x xlApp xlBook xlBooks xlCells xlSheet)
  2. (vl-load-com)
  3. (setq    xlApp       (vlax-get-or-create-object "Excel.Application")
  4.    xlBooks  (vlax-get-property xlApp "Workbooks")
  5.    xlBook       (vlax-invoke-method xlBooks "Add")
  6.    xlSheets (vlax-get-property xlBook "Sheets")
  7.    xlSheet       (vlax-get-property xlSheets "Item" 1)
  8.    xlCells       (vlax-get-property xlSheet "Cells")
  9.    )
  10. (vla-put-visible xlApp :vlax-true)
  11. (vlax-put-property xlCells "Item" 1 1 "Linetype")
  12. (vlax-put-property xlCells "Item" 1 2 "Length")
  13. (setq ltlst (list (cdr (assoc 2 (tblnext "Ltype" t)))))
  14. (while (setq ltynm (tblnext "Ltype"))
  15.    (setq ltlst (append (list (cdr (assoc 2 ltynm)))ltlst))
  16.    )
  17. (setq row 2
  18.    total 0)
  19. (repeat (length ltlst)
  20.    (setq ltype (car ltlst))
  21.    (if (setq ss (ssget "_X" (list (cons 0 "*LINE")(cons 6 ltype))))
  22.      (progn
  23.    (setq drac -1 sumlen 0)
  24.    (repeat (sslength ss)
  25.      (setq pline (vlax-ename->vla-object (ssname ss (setq drac (1+ drac)))))
  26.      (setq leng  (vlax-curve-getdistatparam pline
  27.            (vlax-curve-getendparam pline)))
  28.      (setq sumlen (+ sumlen leng)))
  29.    (vlax-put-property xlCells "Item" row 1 ltype)
  30.    (vlax-put-property xlCells "Item" row 2 (rtos sumlen 2 3))
  31.    (setq total (+ total sumlen))
  32.    (setq ltlst (cdr ltlst))
  33.    (setq row (+ row 1))
  34.    )))
  35. (setq row (+ row 1))  
  36. (vlax-put-property xlCells "Item" row 1 "Total:")
  37. (vlax-put-property xlCells "Item" row 2 (rtos total 2 3))
  38. (mapcar (function (lambda(x)
  39.              (vl-catch-all-apply
  40.            (function (lambda()
  41.                    (progn
  42.                      (vlax-release-object x)
  43.                      (setq x nil)))))))
  44.      (list xlCells xlSheet xlSheets xlBook xlBooks xlApp)
  45.      )
  46. (alert "Close Excel file manually")
  47. (gc)(gc)
  48. (princ)
  49. )
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 15:08:16 | 显示全部楼层
 
我也没有做我的,所以它会得到'bylayer'的线型
 
哈哈,你真的赢了我。。。一旦我看到你的,我改变了我的编码很多,所以它是不一样的。。。(我拿出地图车)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:12:51 | 显示全部楼层
比尔,你的只处理未设置为BYLAYER的行是吗?
 
此外,它将拾取所有*多段线和直线-我不确定OP是否只需要直线。。
 
无论如何,这应该处理设置为BYLAYER的*行:
 
{Some funky ss filter…}
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:ltlen [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] ldef lt tdef ss len laylst[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  3. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] laylst [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b]
  4. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ldef [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]2[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblnext[/color][/b] [b][color=#ff00ff]"LTYPE"[/color][/b] [b][color=BLUE]T[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  5. [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b]
  6.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  7.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lt
  8.        [b][color=RED]([/color][/b][b][color=BLUE]getstring[/color][/b] t
  9.          [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\nSpecify Linetype <"[/color][/b] ldef [b][color=#ff00ff]">: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10.      [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#ff00ff]""[/color][/b] lt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lt [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] ldef[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=BLUE]nil[/color][/b][b][color=RED])[/color][/b]
  11.            [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]snvalid[/color][/b] lt[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12.             [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** Linetype Name Not Valid **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  13.            [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#ff00ff]"LTYPE"[/color][/b] lt[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  14.             [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** Linetype Not Found in Drawing **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.            [b][color=RED]([/color][/b][b][color=BLUE]t[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lt [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] lt[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=BLUE]nil[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  16. [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tdef [b][color=RED]([/color][/b][b][color=BLUE]tblnext[/color][/b] [b][color=#ff00ff]"LAYER"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] tdef[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  17.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] lt [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]6[/color][/b] tdef[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  18.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] laylst
  19.        [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]2[/color][/b] tdef[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b] laylst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  20. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] laylst [b][color=RED]([/color][/b][b][color=BLUE]vl-string-right-trim[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b] laylst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  21. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"_X"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#ff00ff]"*LINE"[/color][/b][b][color=RED])[/color][/b]
  22.                                 [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]-4[/color][/b] [b][color=#ff00ff]"<OR"[/color][/b][b][color=RED])[/color][/b]  [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]6[/color][/b] lt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]-4[/color][/b] [b][color=#ff00ff]"<AND"[/color][/b][b][color=RED])[/color][/b]
  23.                                 [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]-4[/color][/b] [b][color=#ff00ff]"<NOT"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]6[/color][/b] [b][color=#ff00ff]"*"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]-4[/color][/b] [b][color=#ff00ff]"NOT>"[/color][/b][b][color=RED])[/color][/b]
  24.                                 [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]8[/color][/b] laylst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]-4[/color][/b] [b][color=#ff00ff]"AND>"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]-4[/color][/b] [b][color=#ff00ff]"OR>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  25.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  26.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] len
  27.        [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]+[/color][/b]
  28.          [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
  29.            [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  30.              [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
  31.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Length[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  32.            [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b]
  33.              [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  34.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<< Total Length of "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]sslength[/color][/b] ss[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b]
  35.                     [b][color=#ff00ff]" Lines is: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] len [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  36.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<< No Lines Found With Linetype "[/color][/b] lt [b][color=#ff00ff]" >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  37. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 15:17:01 | 显示全部楼层
 
 
啊,这不公平。。我不知道如何使用(缺点4)尚未。。。你的代码对我来说太快了。如果有机会的话,我会在这个周末的某个时候超过你的
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 15:20:14 | 显示全部楼层
哦,说到哪一个(缺点4)上有好帖子?
回复

使用道具 举报

7

主题

39

帖子

32

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 15:22:26 | 显示全部楼层
这些太棒了!他们都做得很好
 
我知道我之前说过我希望它在excel中,但有没有办法把它也放在autocad的表格中?在对这个问题进行更多思考之后,最终这将变得更容易。李如果你把几种线型的值放在一个表中,那将是绝对完美的。我想很多人都可以用它来节省很多时间。
 
再次感谢你们的辛勤工作,他们真的很棒!!!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:24:20 | 显示全部楼层
ss过滤器中的-4代码实际上并不难掌握tbh,即使你应该也能理解
 
简单地说,它就像过滤器中的条件一样工作:
 
因此:
 
  1. (list (cons 0 "CIRCLE")
  2.      (cons -4 "<OR") (cons 40 5) (cons 8 "0") (cons -4 "OR>"))

 
表示层“0”上的所有圆或半径为5的所有圆(或两者都包含在内,使用异或表示非包含性)。
 
只需将术语附在“-4个列表中,如图所示。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 04:45 , Processed in 0.994885 second(s), 70 queries .

© 2020-2025 乐筑天下

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