乐筑天下

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

[编程交流] 协会62

[复制链接]

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 07:13:59 | 显示全部楼层 |阅读模式
如何将(62.30)插入实体dxf组码定义中,其中未列出assoc 62(颜色bylayer)?我用entmod函数尝试了cons和append,但都没用。通常,我会将“subst”与“entmod”函数一起使用,但在这种情况下,我不知道该怎么做。
 
有人知道吗?
 
谢谢
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 07:17:22 | 显示全部楼层
也许 吧:
 
(附加elst’(62.30))
 
-大卫
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 07:21:11 | 显示全部楼层
大卫,我已经试过了。它将元素(62.30)作为组列表的第一个元素,并且不会修改实体。”entmod'返回nil。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 07:26:08 | 显示全部楼层
正如大卫所说。
 
例如
 
  1. (setq s (car (entsel)))
  2. (entmake (append (entget s) '((62 . 30))))
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 07:27:45 | 显示全部楼层
谢谢塔瓦。但是,这会返回一个错误:
 
错误:错误的参数类型:lentyp nil
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 07:31:55 | 显示全部楼层
这很奇怪。
 
你必须把代码添加到另一个例程中,对吗?
 
你想改变颜色的物体是什么?
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 07:34:47 | 显示全部楼层
仅限通过ssget函数过滤的多段线。当我可以替换现有的assoc 62时,效果很好,但如果颜色是bylayer,则assoc 62不存在。所以,我需要把它放进去,给所有的多段线分配颜色30。
这是我做了一些可能违法的事情的代码。我用assoc 8代替图层,用assoc 62代替颜色。它起作用了。“entmod”重建实体,记住assoc 8并将(62.30)添加到正确的位置。但是,正如我所说,这可能是一次“非法行动”。我只是想知道其他人如何处理实体定义组代码中缺少assoc 62的问题。
 
谢谢
 
  1. (defun c:w2 (/ c co cp ecl se sl sn ss)
  2. (setq co 30);(getint "\n Colour number for all polylines: "))
  3. (cond
  4.    ((= polylinelist-pm nil)
  5.     (setq ss                   (ssget "_X" '((0 . "LWPOLYLINE")))
  6.    sl                   (sslength ss)
  7.    c                   0
  8.     )
  9.     (repeat sl
  10.       (setq sn        (ssname ss c)
  11.      se        (entget sn)
  12.      c        (1+ c)
  13.       )
  14.       (if (assoc 62 se)
  15. (setq cp (cdr (assoc 62 se)))
  16. (setq cp 256)
  17.       )
  18.       (setq ecl              (cons sn cp)
  19.      polylinelist-pm  (cons ecl polylinelist-pm)
  20.       )
  21.       (if (assoc 62 se)
  22. (setq se (entmod (subst (cons 62 co)(assoc 62 se) se)))
  23. (setq se (entmod (subst (cons 62 co)(assoc 8  se) se)))
  24.       )
  25.     )
  26.    )
  27.    (t
  28.     (alert
  29.       "Polylines colour has already been changed
  30. Run W3 to return colours to their original state"
  31.     )
  32.    )
  33. )
  34. (princ)
  35. )
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:37:52 | 显示全部楼层
您是否在提示器上试用过塔瓦的代码,或者您是否将其包含在自己的代码中?在最后一种情况下,您可能希望将其发布到此处以进行进一步调试。
对Tharwat示例的一个观察是,它不会修改所选实体,而是实际创建其副本。要修改实体的特征,请使用ENTMOD而不是ENTMAKE。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:41:18 | 显示全部楼层
考虑以下代码:
 
  1. (defun c:w2 ( / c co e i l s )
  2.    (if (setq co 30) ; (acad_colordlg 1 nil))
  3.        (if polylinelist-pm
  4.            (alert "Polylines colour has already been changed.\nRun W3 to return colours to their original state")
  5.            (if (setq s (ssget "_X" '((0 . "LWPOLYLINE"))))
  6.                (repeat (setq i (sslength s))
  7.                    (setq e (ssname s (setq i (1- i)))
  8.                          l (entget e)
  9.                    )
  10.                    (if (setq c (assoc 62 l))
  11.                        (entmod (subst (cons 62 co) c l))
  12.                        (entmod (append l (list (cons 62 co))))
  13.                    )
  14.                    (setq polylinelist-pm (cons (cons e (cond ((cdr c)) (256))) polylinelist-pm))
  15.                )
  16.                (princ "\nNo LWPolylines found in drawing.")
  17.            )
  18.        )
  19.    )
  20.    (princ)
  21. )
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 07:45:27 | 显示全部楼层
谢谢你,李。它工作得很好,我现在可以看到诀窍了。将多段线列表[l]添加到(list(cons 62 co)),将(62.30)放在末尾。
太简单了!
再次感谢李和大家。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 10:19 , Processed in 0.599403 second(s), 83 queries .

© 2020-2025 乐筑天下

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