明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1167|回复: 5

请教如何知道一个实体是否拥有反应器,并得到这个反应器

[复制链接]
发表于 2005-10-14 11:59 | 显示全部楼层 |阅读模式
请教如何知道一个实体是否拥有反应器,并得到这个反应器
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2005-10-14 12:15 | 显示全部楼层
已删除的Object是不能转换为 Entity 的,我想把防止删除的实体保存到一个表里,如果 Erased 就从保存的表里找出 Entity 来再次 Entdel,不知这样是否可行
发表于 2005-10-14 12:19 | 显示全部楼层

;; code: Luis Esquivel
;; will return T if an object has reactor attached
(defun HAS-REACTOR? (OBJ)
  (vl-some
    (function (lambda (X) (numberp X)))
    (mapcar (function (lambda (R) (vl-position OBJ (vlr-owners R))))
     (cdar (vlr-reactors :vlr-object-reactor))
    )
  )
)

;; this will return a list of reactors attached to the object of the type:
:vlr-object-reactor
(defun WHAT-REACTOR? (OBJ)
  (vl-remove-if-not
    (function (lambda (R)
  (if (vl-position OBJ (vlr-owners R))
    R
  )
       )
    )
    (cdar (vlr-reactors :vlr-object-reactor))
  )
)


;; (attached-to obj)
;; return a list with the list of reactors or nil
(defun ATTACHED-TO (OBJ)
  (vl-remove
    NIL
    (mapcar
      (function
 (lambda (REACTOR-TYPE)
   (vl-remove-if-not
     (function
       (lambda (R)
  (cond
    ((and (equal REACTOR-TYPE :vlr-object-reactor)
   (vl-position OBJ (vlr-owners R))
     )
     R
    )
    ((and
       (not (equal REACTOR-TYPE
     :vlr-object-reactor
     )
       )
       (vl-position OBJ (vlr-data R))
     )
     R
    )
  )
       )
     )
     (cdar (vlr-reactors REACTOR-TYPE))
   )
 )
      )
      (vlr-types)
    )
  )
)

 

发表于 2005-10-14 12:21 | 显示全部楼层
Ea发表于2005-10-14 12:15:00已删除的Object是不能转换为 Entity 的,我想把防止删除的实体保存到一个表里,如果 Erased 就从保存的表里找出 Entity 来再次 Entdel,不知这样是否可行...
这种操作很累!还要注意:UNDO,OOPS,U,REDO,ERASE.....反正花不来
 楼主| 发表于 2005-10-14 12:55 | 显示全部楼层
代码还没细看,先谢谢龙龙仔!
 楼主| 发表于 2005-10-14 13:35 | 显示全部楼层
之前我也有这样的模糊的想法,我没想到代码能写得这么简洁,佩服!另外我担心反应器多的话速度慢.不过现在我应该可以减少反应器的数量.谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 07:03 , Processed in 0.208954 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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