明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1833|回复: 2

为什么vla-save不可用

[复制链接]
发表于 2008-2-22 17:18:00 | 显示全部楼层 |阅读模式

下面一段程序为什么vla-save不可用,而vla-saveas可以用,见红色代码

(defun c:test ()
    (defun chgblk (doc / ms)
 (setq ms (vla-get-modelspace doc))
 (vlax-for each ms
     (if (and
      (= (vla-get-objectname each) "AcDbBlockReference")
      (= (vla-get-name each) "__TQTCC1")
  )
  (progn
      (vxsetatts each '(("YEAR_1" . "TCC")))
  )
     )
 )
    )
    (defun GetFolder (msg / WinShell shFolder path catchit)
 (vl-load-com)
 (setq winshell (vlax-create-object "Shell.Application"))
 (setq
     shFolder
        (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1)
 )
 (setq
     catchit
        (vl-catch-all-apply
     '(lambda ()
   (setq shFolder
     (vlax-get-property shFolder 'self)
   )
   (setq path (vlax-get-property shFolder 'path))
      )
        )
 )
 (if (vl-catch-all-error-p catchit)
     nil
     path
 )
    )
    (setq path (GetFolder "目录"))
    (setq files (vl-directory-files path "*.dwg"))
    (princ "\nwaiting ......")
    (princ)
    (foreach n files
 (progn
     (setq
  DBXDOC (vla-getinterfaceobject
      (vlax-get-acad-object)
      "ObjectDBX.AxDbDocument.16"
         )
     )
     (vla-open DBXDOC (strcat path "\\" n))
     (chgblk DBXDOC)
     (vla-save DBXDOC)
     (vla-saveas DBXDOC (strcat path "\\11" n) )    
;;;     (vla-save DBXDOC)
     (vlax-release-object DBXDOC)
 )
    )
    (princ "\n****修改成功****")
    (princ)
)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2010-7-13 21:58:00 | 显示全部楼层

save命令不能用,请教高手

(defun tt ()
  (setq dbxdoc (vla-getinterfaceobject
   (vlax-get-acad-object)
   "ObjectDBX.AxDbDocument.16"
        )
  )
  (vla-open dbxdoc "f:\\44.dwg")
  (setq ms (vlax-get-property dbxdoc "ModelSpace"))

  (setq insertpnt (vlax-3d-point '(0 0 0)))
  (vlax-invoke-method
    ms      "AttachExternalReference"     "f:\\22.dwg"
    "22"     insertpnt     1.0      1.0
    1.0      0      :vlax-false
   )
  (vlax-dump-object dbxdoc t)

  (vlax-invoke-method dbxdoc "save") ;;此行出错 : 错误: Automation 错误。未提供说明。
  (vlax-invoke-method dbxdoc "saveas" "f:\\ok.dwg") ;;此行不出错,但不能保存修改内容

)

发表于 2010-7-13 22:03:00 | 显示全部楼层

接上一条, 

 ;(vlax-invoke-method dbxdoc "save"); 错误: Automation 错误。未提供说明。
  ;(vlax-invoke dbxdoc "save") ;;; 错误: 发生意外。
  ;(vla-save dbxdoc); 错误: Automation 错误。未提供说明。

这几种方法的提示还不一样,求正确的方法和出错的原因.

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 06:30 , Processed in 0.164463 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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