CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2025 开发者帮助

关于导出为其他文件格式 (ActiveX)

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

关于导出为其他文件格式 (ActiveX)

如果需要在其他应用程序中使用 AutoCAD 图形,可以使用该方法将其转换为特定格式。Export

该方法将 AutoCAD 图形导出为 WMF、SAT、EPS、DXF 或 BMP 格式。该方法采用三个值作为输入:要创建的新文件的名称、新文件的扩展名以及要导出的对象的选择集。ExportExport

导出为 WMF、SAT 或 BMP 格式时,必须提供非空选择集。此选择集指定图形中要输出的对象。如果未指定选择集,则不会导出任何内容,并导致可捕获的无效参数错误。

导出为 EPS 和 DXF 格式时,“导出”将忽略选择集参数,但仍是必需的。将自动导出为这些格式的整个图形。

将图形输出为 DXF 文件,然后再次输入

本示例在当前图形中创建一个圆。然后,它将图形导出到名为 DXFExport.dxf 的文件中,打开一个新图形,然后导入该文件。请注意,空选择集作为该方法的参数提供。该方法在导出 DXF 文件时忽略选择集信息,但如果省略参数,则会导致语法错误。ExportExport

AutoLISP
(defun c:Ch3_ImportingAndExporting()
    (setq acadObj (vlax-get-acad-object)
          doc (vla-get-ActiveDocument acadObj)
          moSpace (vla-get-ModelSpace doc)
          acadPref (vla-get-Preferences acadObj))
  
    ;; Create the circle for visual representation
    (setq centerPt (vlax-3d-point 2 2 0)
          radius 1)CH3_IMPORTINGANDEXPORTING

    (setq circleObj (vla-AddCircle moSpace centerPt radius))
    (vla-ZoomAll acadObj)

    ;; Create an empty selection set
    (setq sset (vla-Add (vla-get-SelectionSets doc) "NEWSSET"))

    ;; Export the current drawing to a DXF file in the
    ;; AutoCAD temporary file directory
    (setq dxfname "DXFExport"
          tempPath (vla-get-TempFilePath (vla-get-Files acadPref))
          exportFile (strcat tempPath dxfname))

    (vla-Export doc exportFile "DXF" sset)

    ;; Delete the empty selection set
    (vla-Delete (vla-Item (vla-get-SelectionSets doc) "NEWSSET"))

    ;; Open a new drawing
    (setq newDoc (vla-Add (vla-get-Documents acadObj) "acad.dwt"))

    ;; Define the import
    (setq importFile (strcat tempPath dxfname ".dxf")
          insertPoint (vlax-3d-point 0 0 0)
          scalefactor 2)

    ;; Import the file
    (vla-Import newDoc importFile insertPoint scalefactor)
    (vla-put-ActiveDocument acadObj newDoc)
    ;; Using vla-PostCommand instead of vla-ZoomAll because
    ;; the document might not be current yet
    (vla-PostCommand newDoc "_zoom a ")
)
VBA(仅限 AutoCAD)
Sub Ch3_ImportingAndExporting()
  ' Create the circle for visual representation
  Dim circleObj As AcadCircle
  Dim centerPt(0 To 2) As Double
  Dim radius As Double
  centerPt(0) = 2: centerPt(1) = 2: centerPt(2) = 0
  radius = 1
  Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPt, radius)
  ThisDrawing.Application.ZoomAll

  ' Create an empty selection set
  Dim sset As AcadSelectionSet
  Set sset = ThisDrawing.SelectionSets.Add("NEWSSET")

  ' Export the current drawing to a DXF file in the
  ' AutoCAD temporary file directory
  Dim tempPath As String
  Dim exportFile As String
  Const dxfname As String = "DXFExport"
  tempPath = ThisDrawing.Application.preferences.Files.TempFilePath
  exportFile = tempPath & dxfname
  ThisDrawing.Export exportFile, "DXF", sset 

  ' Delete the empty selection set
  ThisDrawing.SelectionSets.Item("NEWSSET").Delete

  ' Open a new drawing
  Dim newDoc As AcadDocument
  Set newDoc = ThisDrawing.Application.Documents.Add("acad.dwt")

  ' Define the import
  Dim importFile As String
  Dim insertPoint(0 To 2) As Double
  Dim scalefactor As Double
  importFile = tempPath & dxfname & ".dxf"
  insertPoint(0) = 0: insertPoint(1) = 0: insertPoint(2) = 0
  scalefactor = 2#

  ' Import the file
  ThisDrawing.Import importFile, insertPoint, scalefactor
  ThisDrawing.Application.ZoomAll
End Sub

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-3-5 15:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部