乐筑天下

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

[编程交流] 用其他线型替换线型

[复制链接]

16

主题

68

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 07:08:01 | 显示全部楼层 |阅读模式
我有一个巨大的DWG文件,在创建过程中发生了一些奇怪的事情。
线型,如
 
“$0$$0$ACAD\U ISO3W100”
“$0$$0$ACAD_ISO7W100”
“$0$$0$隐藏”
“$0$ACAD_ISO3W100”
“$0$ACAD_ISO7W100”
“$0$ACAD_ISO10W100”
“$0$CENTER”
“$0$DOT”
“$0$隐藏”
“$0$ZIGZAG”
 
出现在区块中。
 
我需要将它们更改为普通命名的,前面没有0$blabla。
 
我真的不知道如何编写一个lisp,它将通过块并在任何对象属性中将例如“$0$ACAD\u ISO10W100”更改为“ACAD\u ISO10W100”。
救命啊!
回复

使用道具 举报

16

主题

68

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 07:11:53 | 显示全部楼层
顺便说一句,这还不是全部。同样的事情也发生在标注样式和文字样式上,所以我需要一个lisps来在绘图和嵌套块中从一种样式更改为另一种样式,并且不会丢失动态块功能。。。
 
这也发生在层上,但我能够将层合并到正常命名的层。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:18:20 | 显示全部楼层
看起来像是绑定BINDTYPE设置为0的外部参照的结果
回复

使用道具 举报

16

主题

68

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 07:22:52 | 显示全部楼层
可能很多人都在做很多不开心的事情。。。现在我是把它带到oreder的人,但打开任何布局都需要3分钟,大约有100个布局。更不用说街区了。。。
回复

使用道具 举报

16

主题

68

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 07:24:41 | 显示全部楼层
顺便说一句,我发现lisp是这样的:
 
  1. (defun c:clr2by (/ doc blks lays lokt new-ltype old-ltype)
  2. ;;convert all objects in a drawing to color=bylayer
  3. ;;by Jeff Mishler - updated 7/25/05 to handle dimension colors
  4. ;;updated 1/05/06 to affect Attributes and to change a specific linetype to another
  5. ;;Modified, Bob Shaw (ECCAD)..Added Lists of Linetypes to swap.
  6. (vl-load-com)
  7. ;; List of Linetypes to swap..
  8. (setq Old_lt_lst (list
  9. "$$$bla_bla"
  10. ))
  11. (setq New_lt_lst (list
  12. "ZIGZAG"
  13. ))
  14. ;;
  15. (setq doc (vla-get-activedocument (vlax-get-acad-object))
  16. blks (vla-get-blocks doc)
  17. lays (vla-get-layers doc)
  18. ;;;;old-ltype "OLD" ;;;;; change this to match your old ltype
  19. ;;;;new-ltype "NEW" ;;;;; change this to match your new ltype
  20. )
  21. (vlax-for lay lays
  22. (if (eq (vla-get-lock lay) :vlax-true)
  23. (progn
  24. (setq lokt (cons lay lokt))
  25. (vla-put-lock lay :vlax-false)
  26. )
  27. )
  28. )
  29. (vlax-for blk blks
  30. (vlax-for ent blk
  31. (mapcar '(lambda (x)
  32. (if (vlax-property-available-p ent x)
  33. (vlax-put ent x 256)
  34. )
  35. )
  36. (list "Color" "DimensionLineColor" "ExtensionLineColor" "TextColor")
  37. )
  38. (if (and (vlax-property-available-p ent 'hasattributes)
  39. (eq (vla-get-hasattributes ent) :vlax-true)
  40. )
  41. (foreach att (vlax-invoke ent 'getattributes)
  42. (vla-put-color att 256)
  43. )
  44. )
  45. ;;
  46. (setq n 0)
  47. (repeat (length Old_lt_lst)
  48.   (setq Olt (nth n Old_lt_lst))
  49.   (setq Nlt (nth n New_lt_lst))
  50.    (if (and (eq (vla-get-linetype ent) Olt)
  51.             (tblsearch "LTYPE" Nlt))
  52.       (vla-put-linetype ent Nlt)
  53.    )
  54.   (setq n (+ n 1))
  55. ); repeat
  56. ;;
  57. )
  58. )
  59. (if lokt
  60. (mapcar '(lambda (x)
  61. (vla-put-lock x :vlax-true)
  62. )
  63. lokt
  64. )
  65. )
  66. (princ)
  67. )
  68. (c:clr2by); and run it.
回复

使用道具 举报

16

主题

68

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 07:28:53 | 显示全部楼层
但它也;将图形中的所有对象转换为颜色=bylayer,我不想这样做。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:32:42 | 显示全部楼层
尝试以下快速编写的代码:
 
  1. (defun c:fixlt ( / n )
  2.    (vlax-for b (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
  3.        (if (and
  4.                (= :vlax-false (vla-get-islayout b))
  5.                (= :vlax-false (vla-get-isxref b))
  6.            )
  7.            (vlax-for o b
  8.                (if (and
  9.                        (wcmatch (setq n (vla-get-linetype o)) "*$*")
  10.                        (setq n (substr n (+ 2 (vl-string-position 36 n 0 t))))
  11.                        (tblsearch "LTYPE" n)
  12.                    )
  13.                    (vl-catch-all-apply 'vla-put-linetype (list o n))
  14.                )
  15.            )
  16.        )
  17.    )
  18.    (princ)
  19. )
  20. (vl-load-com) (princ)
回复

使用道具 举报

16

主题

68

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 07:35:27 | 显示全部楼层
虽然我不理解,但我会的。
 
工作工作需要时间。。。同时感谢你的帮助。。。仍在工作。。。
回复

使用道具 举报

16

主题

68

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 07:41:20 | 显示全部楼层
伙计,你写的水壶在10种线型上都能用,但“0$ZIGZAG”仍然存在。我认为这是因为它没有加载。我试着装一下。
回复

使用道具 举报

16

主题

68

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 07:42:52 | 显示全部楼层
现在做了什么?你能简单解释一下吗?
 
是的,Z字形装载成功了!
 
现在所有线型都正常了。谢谢您!!!
 
标注样式和文字样式仍然是一个问题。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 14:46 , Processed in 0.909664 second(s), 72 queries .

© 2020-2025 乐筑天下

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