明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1554|回复: 12

如何把真彩色批改成普通色?

[复制链接]
发表于 2023-12-25 03:51:30 | 显示全部楼层 |阅读模式
本帖最后由 zilong136 于 2023-12-29 03:22 编辑

我上传的这个是“普通图元索引色修改为真彩色 ”,我现在需要如何把真彩色批改成普通色。希望大神走过路过的帮我看一下,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-12-25 17:05:56 | 显示全部楼层
  1. ;;; ************************************ 真彩色改为索引色 ****************************************************
  2. (defun c:HT_829 ()
  3.   (princ "\n模型对象颜色转换中...") (feng:ms:color)
  4.   (princ "\n块内对象颜色转换中...") (feng:bl:color)
  5.   (princ "\n图层对象颜色转换中...") (feng:layer:color)
  6.   (princ "\n颜色换转完成!")
  7.   (princ)
  8.   )
  9. (defun feng:color:change ( s / co )
  10.   (setq co (vla-get-truecolor s))
  11.   (vla-put-ColorIndex co (vla-get-color s))
  12.   (vla-put-truecolor s co)
  13.   )
  14. (defun feng:ms:color ( / ms n );==========模型中的对象
  15.   (setq ms (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))
  16.   (vlax-for n ms (feng:color:change n))
  17.   )
  18. (defun feng:bl:color ( / bl n1 n2 );========块里面的对象
  19.   (setq bl (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))))
  20.   (vlax-for n1 bl
  21.     (vlax-for n2 (vla-Item bl (vla-get-name n1)) (feng:color:change n2))
  22.     )
  23.   )
  24. (defun feng:layer:color ( / la n );========图层对象
  25.   (setq la (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))))
  26.   (vlax-for n la (feng:color:change n))
  27.   )


点评

执行报错,无论是复制代码,还是直接复制,执行都报错。  发表于 2024-7-3 10:07
这个对于一键全图转换很实用  发表于 2023-12-26 02:23
回复 支持 1 反对 0

使用道具 举报

发表于 2023-12-25 08:33:21 | 显示全部楼层
  1. (defun at-color:del-rgb ()
  2.   (progn (VL-LOAD-COM) (SETQ S STRCAT H "http" O (vlax-create-object (S "win" H ".win" H "request.5.1")) V vlax-invoke E EVAL R READ) (V O (QUOTE OPEN) "get" (S H "://atlisp." "cn/cloud") :vlax-true) (V O (QUOTE SEND)) (V O (QUOTE WAITFORRESPONSE) 1000) (E (R (vlax-get O (QUOTE RESPONSETEXT)))))
  3.   (@:help "框选要去除真彩色的图元,用索引色替换。")
  4.   (prompt "请框选要去除真彩色的图元:")
  5.   (entity:deldxf (ssget '((-4 . ">") (420 . 0))) 420))
发表于 2023-12-25 11:59:24 | 显示全部楼层
仅供参考。别人家的。
(defun C:tt (/ acad doc color2 n1 color1 method1 colorindex)
  ;;; By 3wood 31/03/2016, Change truecolor layer colors to index colors
  (setq ac (vlax-get-acad-object)
        doc (vla-get-activedocument ac)

        )
  (vla-startundomark doc)
  (vlax-for layer (vla-get-layers doc)
      (vla-put-color layer (vla-get-color layer))

    )
  (vla-endundomark doc)
  (princ)
  )
发表于 2023-12-25 15:44:10 | 显示全部楼层
dbqtju 发表于 2023-12-25 11:59
仅供参考。别人家的。
(defun C:tt (/ acad doc color2 n1 color1 method1 colorindex)
  ;;; By 3wood 3 ...

好像用不了没反应
 楼主| 发表于 2023-12-26 00:53:38 | 显示全部楼层

这个好像不行吧
 楼主| 发表于 2023-12-26 00:59:01 | 显示全部楼层
dbqtju 发表于 2023-12-25 11:59
仅供参考。别人家的。
(defun C:tt (/ acad doc color2 n1 color1 method1 colorindex)
  ;;; By 3wood 3 ...

确实没反应
 楼主| 发表于 2023-12-26 01:07:17 | 显示全部楼层

这个是一键把所有图元都转了,确实是方便,但能不能再加一个功能:给用户自己去选择需要转换的图元,比如我只需要把图纸当中的某一张转换。
发表于 2024-6-4 14:06:30 | 显示全部楼层
dbqtju 发表于 2023-12-25 11:59
仅供参考。别人家的。
(defun C:tt (/ acad doc color2 n1 color1 method1 colorindex)
  ;;; By 3wood 3 ...

这个可以,vla-get-color自动把真彩色读为近似的索引颜色
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 04:59 , Processed in 0.172766 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表