明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4544|回复: 5

[讨论] 反应器的困惑

[复制链接]
发表于 2014-9-28 13:56:59 | 显示全部楼层 |阅读模式
本帖最后由 自贡黄明儒 于 2014-9-29 08:36 编辑

;;在(:vlr-lispEnded . w2)中,①自定义w2是两个还是三个参数呢?②这些参数是什么呢?
;;一直以来我都相当困惑,也是我从用不反应器的原因,今天试一下

;;[第一步]
;;1.1 查看所有反应器
(defun C:w1 ()
  (foreach x (vlr-types)
    (princ (strcat "\n" (VL-PRINC-TO-STRING x)))
    (foreach y (VLR-Reaction-Names x)
      (princ (strcat "\n\t" (VL-PRINC-TO-STRING y)))
    )
  )
  (princ)
)
;|05
:VLR-Linker-Reactor
:VLR-rxAppLoaded
:VLR-rxAppUnLoaded
:VLR-Editor-Reactor
:VLR-unknownCommand
:VLR-commandWillStart
:VLR-commandEnded
:VLR-commandCancelled
:VLR-commandFailed
:VLR-lispWillStart
:VLR-lispEnded
:VLR-lispCancelled
:VLR-beginClose
:VLR-beginDxfIn
:VLR-abortDxfIn
:VLR-dxfInComplete
:VLR-beginDxfOut
:VLR-abortDxfOut
:VLR-dxfOutComplete
:VLR-beginDwgOpen
:VLR-endDwgOpen
:VLR-dwgFileOpened
:VLR-databaseConstructed
:VLR-databaseToBeDestroyed
:VLR-beginSave
:VLR-saveComplete
:VLR-sysVarWillChange
:VLR-sysVarChanged
:VLR-AcDb-Reactor
:VLR-objectAppended
:VLR-objectUnAppended
:VLR-objectReAppended
:VLR-objectOpenedForModify
:VLR-objectModified
:VLR-objectErased
:VLR-objectUnErased
:VLR-DocManager-Reactor
:VLR-documentCreated
:VLR-documentToBeDestroyed
:VLR-documentLockModeWillChange
:VLR-documentLockModeChangeVetoed
:VLR-documentLockModeChanged
:VLR-documentBecameCurrent
:VLR-documentToBeActivated
:VLR-documentToBeDeactivated
:VLR-Command-Reactor
:VLR-unknownCommand
:VLR-commandWillStart
:VLR-commandEnded
:VLR-commandCancelled
:VLR-commandFailed
:VLR-Lisp-Reactor
:VLR-lispWillStart
:VLR-lispEnded
:VLR-lispCancelled
:VLR-DXF-Reactor
:VLR-beginDxfIn
:VLR-abortDxfIn
:VLR-dxfInComplete
:VLR-beginDxfOut
:VLR-abortDxfOut
:VLR-dxfOutComplete
:VLR-DWG-Reactor
:VLR-beginDwgOpen
:VLR-endDwgOpen
:VLR-dwgFileOpened
:VLR-databaseConstructed
:VLR-databaseToBeDestroyed
:VLR-beginSave
:VLR-saveComplete
:VLR-beginClose
:VLR-Insert-Reactor
:VLR-beginInsert
:VLR-beginInsertM
:VLR-otherInsert
:VLR-abortInsert
:VLR-endInsert
:VLR-Wblock-Reactor
:VLR-wblockNotice
:VLR-beginWblockPt
:VLR-beginWblockId
:VLR-beginWblock
:VLR-otherWblock
:VLR-abortWblock
:VLR-endWblock
:VLR-beginWblockObjects
:VLR-SysVar-Reactor
:VLR-sysVarWillChange
:VLR-sysVarChanged
:VLR-DeepClone-Reactor
:VLR-beginDeepClone
:VLR-beginDeepCloneXlation
:VLR-abortDeepClone
:VLR-endDeepClone
:VLR-XREF-Reactor
:VLR-beginAttach
:VLR-otherAttach
:VLR-abortAttach
:VLR-endAttach
:VLR-redirected
:VLR-comandeered
:VLR-beginRestore
:VLR-abortRestore
:VLR-endRestore
:VLR-xrefSubcommandBindItem
:VLR-xrefSubcommandAttachItem
:VLR-xrefSubcommandOverlayItem
:VLR-xrefSubcommandDetachItem
:VLR-xrefSubcommandPathItem
:VLR-xrefSubcommandReloadItem
:VLR-xrefSubcommandUnloadItem
:VLR-Undo-Reactor
:VLR-undoSubcommandAuto
:VLR-undoSubcommandControl
:VLR-undoSubcommandBegin
:VLR-undoSubcommandEnd
:VLR-undoSubcommandMark
:VLR-undoSubcommandBack
:VLR-undoSubcommandNumber
:VLR-Window-Reactor
:VLR-docFrameMovedOrResized
:VLR-mainFrameMovedOrResized
:VLR-Toolbar-Reactor
:VLR-toolbarBitmapSizeWillChange
:VLR-toolbarBitmapSizeChanged
:VLR-Mouse-Reactor
:VLR-beginDoubleClick
:VLR-beginRightClick
:VLR-Miscellaneous-Reactor
:VLR-pickfirstModified
:VLR-layoutSwitched
:VLR-Object-Reactor
:VLR-cancelled
:VLR-copied
:VLR-erased
:VLR-unerased
:VLR-goodbye
:VLR-openedForModify
:VLR-modified
:VLR-subObjModified
:VLR-modifyUndone
:VLR-modifiedXData
:VLR-unappended
:VLR-reappended
:VLR-objectClosed
|;

;;[第二步]
;;w2后面的参数是什么东西?
(defun c:ww (/ HANDL1 HANDL2 OBJ VLROBJ)
  (setq obj (vlax-ename->vla-object (car (entsel "\n 圆")))) ;要添加反应器的对象
  (setq handL1 (cdr (assoc 5 (entget (car (entsel "\n 直线1")))))) ;要关联的对象
  (setq handL2 (cdr (assoc 5 (entget (car (entsel "\n 直线2")))))) ;要关联的对象
  (setq vlrobj (vlr-object-reactor (list obj) (list handL1 handL2) '((:VLR-modified . w2))))
  ;;上句有对象,说明w2带三个参数;下句为nil,w2带两个参数
  ;;(vlr-lisp-reactor nil '((:vlr-lispEnded . w2) (:vlr-lispCancelled . w2)))
)

(defun w2 (obj reactor pa)
  (princ "\n")
  (princ obj)
  (princ "\n")
  (princ reactor)
  (princ "\n")
  (princ pa)
  (princ)
)

;;[第三步]
;|执行ww命令,圆与两直线关联起来,即当圆改变时,返回如下:
#<VLA-OBJECT IAcadCircle 0bdd3ef4> ;就是那个圆
#<VLR-Object-Reactor> ;(mapcar 'handent (vlr-data reactor))就是那两条直线
nil ;总是nil,就不管它了

这样就可以写代w2函数了,先得到obj的圆心,然后修改那条直线
|;

本帖子中包含更多资源

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

x

点评

对应器是什么?  发表于 2014-9-29 08:21
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

 楼主| 发表于 2014-9-29 08:15:22 | 显示全部楼层
通过一步步学习,很容易弄清楚
;;4.1  删除对象上的反应器
;;5.1 启动编辑反应器.
象我一样,对学习反应器的人来应该有用,昨天也把这个贴子发晓东了,结果被枪毙了

本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +2 金钱 +20 收起 理由
四月时落- + 1 + 20 赞一个!
Kye + 1 赞一个!

查看全部评分

发表于 2014-9-29 15:11:00 | 显示全部楼层
自贡黄明儒 发表于 2014-9-29 08:15
通过一步步学习,很容易弄清楚
;;4.1  删除对象上的反应器
;;5.1 启动编辑反应器.

为何,枪毙的原因是什么?
 楼主| 发表于 2014-9-29 15:27:14 | 显示全部楼层
lucas_3333 发表于 2014-9-29 15:11
为何,枪毙的原因是什么?

说明了,明经和晓东的差别。
发表于 2014-9-29 15:48:36 | 显示全部楼层
本帖最后由 lucas_3333 于 2014-9-29 15:49 编辑
自贡黄明儒 发表于 2014-9-29 15:27
说明了,明经和晓东的差别。

不明白, 是何原因?这不会触及别人的利益啊,晓东老大很开明的啊

点评

可能是觉得没有什么用处  发表于 2014-9-29 16:08
发表于 2016-6-25 19:51:32 | 显示全部楼层
还是明经好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 19:19 , Processed in 0.189585 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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