明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1679|回复: 8

[基础] 求助:统一改变直线颜色

[复制链接]
发表于 2009-11-26 17:21 | 显示全部楼层 |阅读模式

(defun c:ys1()
     (setq ent_list (ssget))
   (setq ent_list_len (sslength ent_list))
   (setq id 0)
   (repeat ent_list_len
    ( setq ent_data (entget (ssname ent_list id)))
    
    ( setq ent_data (subst (cons 10 '(0 0))(assoc 10 ent_data)ent_data));;;修改起点坐标
     ;( setq ent_data (subst (cons 370 140 )(assoc 370 ent_data)ent_data));;;修改颜色
    (entmod ent_data)
    (setq id (1+ id))
  )
)

为什么 修改坐标行 ,修改颜色不行呢?求教各位大侠

发表于 2009-11-26 17:32 | 显示全部楼层
可曾考虑用 'Chprop' 命令
发表于 2009-11-26 18:22 | 显示全部楼层

颜色组码为370吗?

 楼主| 发表于 2009-11-26 20:07 | 显示全部楼层

370 是代表线性但还是不行de

发表于 2009-11-26 20:26 | 显示全部楼层
颜色是62组码
 楼主| 发表于 2009-11-26 20:49 | 显示全部楼层

我改成62组吗也不行 ,为什么

(defun c:ys1()
 
   (setq ent_list (ssget))
   (setq ent_list_len (sslength ent_list))
   (setq id 0)
   (repeat ent_list_len
    ( setq ent_data (entget (ssname ent_list id)))   
    ( setq ent_data (subst (cons 62 2) (assoc 62 ent_data)ent_data))
    (entmod ent_data)
    (setq id (1+ id))
 )
)

发表于 2009-11-26 22:31 | 显示全部楼层

有的线没有颜色,就没有62的项

assoc 62 ent_data

返回nil

发表于 2009-11-27 01:04 | 显示全部楼层
  1. (defun c:test (/ sset item ctr check)
  2.      ;load the visual lisp extensions
  3.   (vl-load-com)
  4.      ;check for selection
  5.   (while
  6.      ;get the selection set
  7.     (setq sset (ssget))
  8.      ;set up the counter
  9.      (setq ctr 0)
  10.      ;count the number of entities and loop
  11.      (repeat (sslength sset)
  12.      
  13.      ;extract the entity name,convert to vl object
  14.        (setq item (vlax-ename->vla-object (ssname sset ctr)))
  15.      ;check if the entity has a color property
  16.      ;and it can be updated
  17.        (setq check (vlax-property-available-p item "Color" T))
  18.      ;if it can
  19.        (if (and check (= "AcDbLine" (vla-get-Objectname item)))
  20.      ;change it's color
  21.   (vlax-put-property item 'Color 6)
  22.        )    ;if
  23.      ;increment the counter
  24.        (setq ctr (1+ ctr))
  25.      )     ;repeat
  26.   )     ;while
  27.   (princ)
  28. )     ;defun
  29. (princ)
发表于 2009-11-27 08:42 | 显示全部楼层
若不方便用 'chprop'
Try this
   (ssget)
   (vlax-for obj
     (vla-get-activeselectionset
         (vla-get-activedocument (vlax-get-acad-object))
     )
     (vla-put-color obj 4)         ; 4 ==> or other color
   )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 19:10 , Processed in 0.209696 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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