乐筑天下

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

[编程交流] 更改颜色、命令、更改

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:06:11 | 显示全部楼层 |阅读模式
我正在尝试编写一个lisp,它将更改当前颜色(而不是图层颜色),执行用户输入命令,然后将其更改回bylayer。
 
  1. (defun C:revc ()
  2. (command "color" "240")
  3. (command "revcloud")
  4. (command "color" "bylayer")
  5. ) ;end_defun

 
如果我删除将颜色更改回bylayer的命令,它将正常执行。我认为当我不暂停它并等待用户完成“revcloud”命令时,它就会出现问题。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:13:13 | 显示全部楼层
您可以改用CECOLOR系统变量:
  1. (setvar "CECOLOR" "240")
  2. ;your code here
  3. (setvar "CECOLOR" "ByLayer")

 
当做
米尔恰
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:15:05 | 显示全部楼层
  1. (defun c:revc nil
  2. (setvar 'Cecolor "240")
  3.       (command "_.Revcloud")
  4.        (while (> (getvar 'Cmdactive) 0)
  5.                      (command pause))
  6.        (setvar 'Cecolor "256")(princ)
  7.      )

 
编辑:oops。。没有在那里看到你的帖子Mircea
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 08:18:11 | 显示全部楼层
无论图层状态颜色是什么。
 
  1. (defun c:TesT nil
  2. (command "_.revcloud")
  3. (while
  4.    (= (getvar 'cmdactive) 1)
  5.     (command pause)
  6. )
  7. (command "_.chprop" (entlast) "" "_color" 240 "")
  8. (princ)
  9. )
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:22:52 | 显示全部楼层
小心。。。
 
  1. Command: revc
  2. _.Revcloud
  3. Minimum arc length: 0.5000   Maximum arc length: 0.5000   Style: Normal
  4. Specify start point or [Arc length/Object/Style] <Object>: [color=red]*Cancel*[/color]
  5. Command: [color=red]; error: Function cancelled[/color]

 
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:26:49 | 显示全部楼层
被毁!!
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:29:24 | 显示全部楼层
 
我相信其目的是以所需的颜色绘制revcloud,而不是在之后更改。
 
 
错误处理示例:
 
  1. (defun c:revc  ( / *error*)
  2. (defun *error*  (msg)
  3.    (and oldCecolor (setvar 'cecolor oldCecolor))
  4.    (cond ((not msg))                                                   ; Normal exit
  5.          ((member msg '("Function cancelled" "quit / exit abort")))    ; <esc> or (quit)
  6.          ((princ (strcat "\n** Error: " msg " ** "))))                 ; Fatal error, display it
  7.    (princ))
  8. ((lambda (oldCecolor)
  9.     (setvar 'cecolor "240")
  10.     (command "._revcloud")
  11.     (while (= (logand 1 (getvar 'cmdactive)) 1) (command pause))
  12.     (*error* nil))
  13.    (getvar 'cecolor)))

 
**编辑-通过这种方式,无论是在命令完成时,还是在用户退出时,都会恢复原始的Cecolor。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:34:03 | 显示全部楼层
另一个:
 
  1. (vl-load-com)
  2. (if (null *revcloudreactor*)
  3.    (setq *revcloudreactor*
  4.        (vlr-command-reactor nil
  5.           '(
  6.                (:vlr-commandwillstart . revcloudstore)
  7.                (:vlr-commandended     . revcloudrestore)
  8.                (:vlr-commandfailed    . revcloudrestore)
  9.                (:vlr-commandcancelled . revcloudrestore)
  10.            )
  11.        )
  12.    )
  13. )
  14. (defun revcloudstore ( reactor params )
  15.    (if (wcmatch (strcase (car params)) "*REVCLOUD")
  16.        (progn
  17.            (setq *cecolor* (getvar 'CECOLOR))
  18.            (setvar 'CECOLOR "240")
  19.        )
  20.    )
  21.    (princ)
  22. )
  23. (defun revcloudrestore ( reactor params )
  24.    (if (and *cecolor* (wcmatch (strcase (car params)) "*REVCLOUD"))
  25.        (progn
  26.            (setvar 'CECOLOR *cecolor*)
  27.            (setq *cecolor* nil)
  28.        )
  29.    )
  30.    (princ)
  31. )
  32. (princ)
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:36:12 | 显示全部楼层
 
是的
 
我知道我不能像你的Renderman那样快速地输入和编码,所以我甚至没有试过
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:40:48 | 显示全部楼层
使用命令反应器是我为多个命令标准化活动层、颜色等的首选方法。
 
非常简洁,李。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:52 , Processed in 0.352374 second(s), 72 queries .

© 2020-2025 乐筑天下

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