明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1871|回复: 5

请教meflying版主

[复制链接]
发表于 2003-10-11 11:31:00 | 显示全部楼层 |阅读模式
请教meflying版主:
我最近编了个关于永久反应器的程序,是想让一图中的两个不同的属性参照中的同tag的属性的值互相关联,即改变任一个的值另一个同步发生改变。好像是成功了。但——
在另一干净的AutoCAD2002(无任何二次开发的程序)打开该图并修改,问题出在保存时出错,提示“写入/关闭文件时出错”,命令行提示: _qsave ; 错误: no function definition: _cvo-proxy.axvlo-dump
请问是怎么回事?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2003-10-11 12:43:00 | 显示全部楼层
我上次给你的帮助文件你应该仔细看看,
有这个错误,说明反应器依然存在,不过因为你的回调函数并不是随着反应器而自动加载的,所以必须先加载回调函数。
你可以将所有每次都需要加载的函数(不仅仅是回调函数)放在一起,放到自动加载里面,或做到菜单里面。
 楼主| 发表于 2003-10-11 15:06:00 | 显示全部楼层
谢谢!!!
我看过了您给的帮助文件的!!
我也考虑到是否还存在回调函数,我还用了(vlr-remove-all),上面的问题仍然存在。


我的反应器文件如下:
(defun get_tydhandtitle        ()
  (setvar "cmdecho" 0)
  (command "undo" "be")
  (setq nm 0)
  (vl-load-com)
  (setq        ss (ssget "X"
                  '((0 . "INSERT"))
           )
  )
  (if (/= ss nil)
    (repeat (sslength ss)
      (setq ent (ssname ss nm))
      (setq obj (vlax-ename->vla-object ent))
      (setq variantvalue (vlax-variant-value (vla-GetAttributes obj)))
      (if (/= -1 (vlax-safearray-get-u-bound variantvalue 1))
        (progn
          (setq list_att (vlax-safearray->list variantvalue))
          (setq list_len (vl-list-length list_att))
          (setq ct 0)
          (repeat list_len
            (setq tag (vla-get-tagstring (nth ct list_att)))
            (if        (= tag "TYDH")
              (setq tydh (nth ct list_att))
            )
            (if        (= tag "图样代号")
              (setq title (nth ct list_att))
            )
            (setq ct (1+ ct))
          )
        )
      )
      (setq nm (1+ nm))
    )
  )


;;;定义回调数  
  (defun tydh_follow_title (title reactor-object parameter-list)
    (IF        (AND (/= title nil) (/= tydh nil))
      (progn
        (setq text (vla-get-textstring title))
        (vla-put-textstring tydh text)
      )
    )
  )
  (defun title_follow_tydh (tydh reactor-object parameter-list)
    (IF        (AND (/= title nil) (/= tydh nil))
      (progn
        (setq text (vla-get-textstring tydh))
        (vla-put-textstring title text)
      )
    )
  )
;;;定义反器
  (IF (AND (/= title nil) (/= tydh nil))
    (progn
      (setq attedit_tydh_follow_title_Reactor
             (vlr-object-reactor
               (list title)
               "att Reactor"
               '((:vlr-modified . tydh_follow_title))
             )
      )
      (vlr-pers attedit_tydh_follow_title_Reactor)
    )
  )
  (IF (AND (/= title nil) (/= tydh nil))
    (progn
      (setq attedit_title_follow_tydh_Reactor
             (vlr-object-reactor
               (list tydh)
               "att Reactor"
               '((:vlr-modified . title_follow_tydh))
             )
      )
      (vlr-pers attedit_title_follow_tydh_Reactor)
    )
  )
  (command "undo" "e")
  (princ)
;;;
)


烦你再帮助我,谢谢!!!
另外明经里的ObjectDCL1.08好像下不下来。
发表于 2003-10-12 13:51:00 | 显示全部楼层
ObjectDCL1.08我也下不下来。
发表于 2003-10-12 16:07:00 | 显示全部楼层
你还是没有理解意思,你的反应器没有任何问题,程序也没有任何问题,如果你原来可以的,就不需要做任何更改。
你的问题是函数加载问题,反应器是存于图形内部的,打开它就存在,可回调函数并不是这样的,你打开这个函数并没有加载此函数,必须通过其它方式加载它才可以。
就象你写了一个程序,你没有加载它,是不能运行的。
 楼主| 发表于 2003-10-13 12:20:00 | 显示全部楼层
谢谢meflying版主!!!
我成功解决问题了,非常感谢你……!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 14:24 , Processed in 0.180836 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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