CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

关于打开、保存和关闭图形 (ActiveX)

2024-5-18 19:06| 发布者: admin| 查看: 193| 评论: 0|原作者: admin|来自: AutoCAD

关于打开、保存和关闭图形 (ActiveX)

集合和文档对象提供对 AutoCAD 文件功能的访问。Documents

若要创建新图形或打开现有图形,请使用集合中的方法。该方法创建一个新图形,并将该图形添加到集合中。该方法将打开现有图形。集合中还有一种方法,用于关闭在 AutoCAD 任务中打开的所有图形。DocumentsAddDocumentsOpenCloseDocuments

使用 或 方法保存图形。有时,您需要检查活动图形是否有任何未保存的更改。在退出AutoCAD任务或开始新图形之前执行此操作是个好主意。使用该属性可确保当前图形不包含任何未保存的更改。SaveSaveAsSaved

要导入和导出图形,请在对象上使用“导入”和“方法。ExportDocument

打开现有图形

该方法可用于打开现有图形。在尝试使用VBA中的函数和AutoLISP中的函数打开文件之前,可以检查文件是否存在。OpenDirfindfile

注意:对于示例,请确保更改图形文件名或路径以指定系统上的现有 AutoCAD 图形文件。
AutoLISP
(vl-load-com)
(defun c:Ch3_OpenDrawing ( / )
    (setq acadObj (vlax-get-acad-object)
          docs (vla-get-Documents acadObj))
  
    (setq dwgName "c:\\Autodesk\\campus.dwg")
    (if (findfile dwgName)
        (vla-Open docs dwgName)
        (alert (strcat "File " dwgName " does not exist."))
    )
)
VBA(仅限 AutoCAD)
Sub Ch3_OpenDrawing()
  Dim dwgName As String
  dwgName = "c:\campus.dwg"
  If Dir(dwgName) <> "" Then
    ThisDrawing.Application.Documents.Open dwgName
  Else
    MsgBox "File " & dwgName & " does not exist."
  End If
End Sub

创建新图形

本示例使用该方法基于缺省模板创建新图形。Add

AutoLISP
(vl-load-com)
(defun c:Ch3_NewDrawing ( / )
    (setq acadObj (vlax-get-acad-object)
          docs (vla-get-Documents acadObj))

    (setq docObj (vla-Add docs))
)
VBA(仅限 AutoCAD)
Sub Ch3_NewDrawing()
  Dim docObj As AcadDocument
  Set docObj = ThisDrawing.Application.Documents.Add
End Sub

保存活动图形

本示例将活动图形保存在其当前名称下,并再次保存为新名称。

AutoLISP
(vl-load-com)
(defun c:Ch3_SaveActiveDrawing ( / )
    (setq acadObj (vlax-get-acad-object)
          doc (vla-get-ActiveDocument acadObj))
  
    ;; Save the active drawing under the current name
    (vla-Save doc)

    ;; Save the active drawing under a new name
    (vla-SaveAs doc "MyDrawing.dwg")
)
VBA(仅限 AutoCAD)
Sub Ch3_SaveActiveDrawing()
  ' Save the active drawing under the current name
  ThisDrawing.Save

  ' Save the active drawing under a new name
  ThisDrawing.SaveAs "MyDrawing.dwg"
End Sub

测试图形是否有未保存的更改

本示例检查是否有未保存的更改,并与用户验证是否可以保存图形(如果不可以,请跳到末尾)。如果确定,请使用该方法保存当前图形,如下所示。Save

AutoLISP
(vl-load-com)
(defun c:Ch3_TestIfSaved ( / )
    (setq acadObj (vlax-get-acad-object)
          doc (vla-get-ActiveDocument acadObj)
          utilObj (vla-get-Utility doc))
    
    ;; Define and call InitializeUserInput to set up the keywords
    (setq keywordList "Yes No")
    (vla-InitializeUserInput utilObj 0 keywordList)
	  
    (if (= :vlax-false (vla-get-Saved doc))
        (if (/= "No" (vla-GetKeyword utilObj "\nDo you wish to save this drawing? [Yes/No] <Yes>: "))
            (vla-Save doc)
        )
    )
)
VBA(仅限 AutoCAD)
Sub Ch3_TestIfSaved()
  If Not (ThisDrawing.Saved) Then
    If MsgBox("Do you wish to save this drawing?", _
      vbYesNo) = vbYes Then
      ThisDrawing.Save
    End If
  End If
End Sub

路过

雷人

握手

鲜花

鸡蛋

最新评论

群   号:715888130

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-5-13 08:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部