iCAx开思网

标题: LISP更新图象问题 [打印本页]

作者: microzhujie    时间: 2003-10-3 21:22
标题: LISP更新图象问题
各位老师好,有一个LISP问题
每当我输入颜色号码,选择图安时候,象LINE CIRCLE都能更句我所输入的颜色号码来改变,但距行就不行,我试过好几次了不知道是为什么。还有如果居行的颜色不时随层的话问题就没了。下面是我的LISP程序。
作者: microzhujie    时间: 2003-10-3 21:23
为什么距行不变色??
作者: microzhujie    时间: 2003-10-3 21:29
希望大家知道的话
说一下
  
小弟先谢过了
作者: 陈伯雄    时间: 2003-10-4 09:05
因为LWPline是复杂实体,与Circle、Line这样的简单实体不同。
您在添加颜色项(62 . xxx)的时候,必须保证放在复杂实体数据表的"内部“,而不是现在这样放在“外部”,至少要放在-1项的后面。
作者: microzhujie    时间: 2003-10-4 21:18
太感谢你了
您真不愧是我CAD的偶像!!!
  
十万分的感谢!!!!!!!!
作者: sword    时间: 2003-10-5 22:39
陈伯雄 wrote:
因为LWPline是复杂实体,与Circle、Line这样的简单实体不同。  
  您在添加颜色项(62 . xxx)的时候,必须保证放在复杂实体数据表的"内部“,而不是现在这样放在“外部”,至少要放在-1项的后面。

  
教授,如何控制新生成表所在的位置呢?如何插到-1项以后呢?
作者: microzhujie    时间: 2003-10-6 09:17
自己组织自己写涵数呀。
作者: sword    时间: 2003-10-13 22:11
把程序改了一下,可以了。
  
(defun c:ua()
   (graphscr)
   (setq oce (getvar "cmdecho"))
   (setvar "cmdecho" 0)
   (setq c2 (cons 62 (getint "\nnew color:")));;组成数据项
   (setq s1 '())                           ;;建立空的序列,准备存放对象名称
   (setq s2 (ssadd))                       ;;建立空的选择集中,准备放主对象名称
  
   (setq e1 (entsel "\nselect object:"))  ;;选取要修改的颜色对象
   (while e1                               ;;当选到的图形是重复循环   
     (setq e2 (car e1))
     (setq s1 (cons e2 s1))                ;;将对象加入序列        
     (if (setq e3 (car (cadddr e1)))       ;;取主对象的名称若有加入
       (setq s2 (ssadd e3 s2))
     )
     (setq e1 (entsel "\nselect object:"));;继续
   )
  
   (setq i 0)                    ;;更新对象
   (repeat (length s1)                     ;;重复N次
     (setq e2 (entget (nth i s1)))         ;;取出对象数据列
     (setq et (cdr (cadr e2)))
     (if (setq c3 (assoc 62 e2))           ;;取出旧的颜色数据项
       (setq e5 (subst c2 c3 e2))          ;;若有,置换颜色数据项
       (if (= et "LWPOLYLINE")
     (progn (setq e2(reverse e2))
            (setq e2(cons c2 e2))
            (setq e5(reverse e2))
     )
          (setq e5 (cons c2 e2))          ;;若无,则加入颜色数据
       )
     )
     (entmod e5)                           ;;更新
  
     (setq i (1+ i))
   )
   ;;更新主象
   ;;略
)
  
红色部分为新加的。
顺便问一下,lisp中有四舍五入的函数吗?
作者: wayne    时间: 2003-10-14 00:19
四捨五入的函數自己寫.




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3