乐筑天下

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

[编程交流] color chan遇到错误

[复制链接]

9

主题

51

帖子

42

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 17:34:44 | 显示全部楼层 |阅读模式
一直在使用这个变色lisp。到目前为止还不错。但发现有些行不会改变&反而会遇到错误。
 
 
附件为图纸。线路左侧无法更改。右侧can
 
问题是什么?
 
 
  1. ;;  ColorCommandNames.lsp
  2. ;;  Function name: CCN; command names 0 through 256
  3. ;;  Defines commands for all color numbers.
  4. ;;  Type color number as command, select objects, and
  5. ;;    they will have that color assigned as entity override.
  6. ;;  Based on okc.lsp by Tommy Shumpert at Cadalyst CAD
  7. ;;    Tips, Tip #3645, "Change Entity Colors," 15 May 2011
  8. ;;  Slightly altered, and expanded on, by Kent Cooper,
  9. ;;    13 September 2012, to add to original's colors 1-255:
  10. ;;    0 = ByBlock
  11. ;;    256 = ByLayer
  12. ;;  Enhanced 17 September 2013 [prompt including color names,
  13. ;;    notifications, locked-Layer prevention, operation only with
  14. ;;    valid selection, command-echo suppression.]
  15. (setq i 0)
  16. (while (<= i 256)
  17. (eval (read (strcat "(defun c:" (itoa i) "() (ccn " (itoa i) "))")))
  18. (setq i (1+ i))
  19. )
  20. (defun ccn (color / ss cmde); = Color Command Name
  21. (prompt
  22.    (strcat
  23.      "\nTo assign to object(s) color "
  24.      (itoa color)
  25.      (cond
  26.        ((< color
  27.          (strcat
  28.            " ("
  29.            (nth color '("ByBlock" "Red" "Yellow" "Green" "Cyan" "Blue" "Magenta" "White/Black"))
  30.            ")"
  31.          ); strcat
  32.        ); ByBlock-or-named-color condition
  33.        ((= color 256) " (ByLayer)")
  34.        (""); add nothing for 1 through 255
  35.      ); cond
  36.      ","
  37.    ); strcat
  38. ); prompt
  39. (if (setq ss (ssget "_:L")); User selection, excluding object(s) on locked Layer(s)
  40.    (progn ; then
  41.      (setq cmde (getvar 'cmdecho))
  42.      (setvar 'cmdecho 0)
  43.      (command
  44.        "._change" ss "" "p" "c"
  45.        (cond
  46.          ((= color 0) "byblock")
  47.          ((= color 256) "bylayer")
  48.          (color)
  49.        ); cond
  50.        ""
  51.      ); command
  52.      (setvar 'cmdecho cmde)
  53.      (prompt (strcat "\nAssigned color to " (itoa (sslength ss)) " object(s)."))
  54.    ); progn
  55.    (prompt "\nNo changeable objects selected."); else
  56. ); if
  57. (princ)
  58. )
回复

使用道具 举报

BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 17:43:13 | 显示全部楼层
插入该代码的哪个部分?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:47:39 | 显示全部楼层
 
可能,但不愿意。
回复

使用道具 举报

9

主题

51

帖子

42

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 17:55:06 | 显示全部楼层
尝试更改:
  1. (repeat (setq x (sslength ss))
  2. (vla-put-color (vlax-ename->vla-object (ssname ss (setq x (- x 1)))) 4)
  3. )

收件人:
  1. "._change" ss "" "p" "c"
回复

使用道具 举报

9

主题

51

帖子

42

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 17:58:10 | 显示全部楼层
 
谢谢你,伙计!!成功了!!
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 18:07:23 | 显示全部楼层
尝试此功能
 
  1. "._chprop" ss "" "c"
回复

使用道具 举报

9

主题

51

帖子

42

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 18:09:29 | 显示全部楼层
 
尝试但当按下数字时,它不会注册命令。当按2或10,然后选择object&enter时,当前代码将把object更改为红色。如果按3或100,将变为绿色。
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-5 18:18:07 | 显示全部楼层
颜色2和10不相同。。。它们是相同颜色的不同色调。。。与3和100相同
 
你可以看到颜色指数的不同
回复

使用道具 举报

9

主题

51

帖子

42

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 18:19:48 | 显示全部楼层
 
这是正确的。我指的是它在视觉上的底色。我想强调的是,颜色将根据您提到的颜色指数所指示的数字而变化。
 
顺便问一下,你的代码是如何工作的?
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-5 18:24:06 | 显示全部楼层
确实会改变物体的颜色。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 05:25 , Processed in 0.717013 second(s), 83 queries .

© 2020-2025 乐筑天下

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