yuliang2477 发表于 2009-11-19 15:28:00

如何用代码控制CAD打开时的dwt模板

<p>我自已做了一个dwt模板,想让程序执行打开CAd时选用这个模板,请高手指教如何可以实现。</p>

雪山飞狐_lzh 发表于 2009-11-19 15:39:00

<a href="http://www.mjtd.com/object/acad2004/idh_add.htm">http://www.mjtd.com/object/acad2004/idh_add.htm</a>

yuliang2477 发表于 2009-11-20 14:56:00

<p>没看明白</p><p>Public Sub CADConnect()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>On Error Resume Next<br/>Set Obj_Acad = GetObject(, "autocad.application")<br/>If Err Then<br/>&nbsp;&nbsp; Err.Clear<br/>&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp; Set Obj_Acad = CreateObject("autocad.application")<br/>&nbsp;&nbsp; If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox "不能运行AutoCAD,请检查是否安装!", vbOKCancel, "警告!"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>End If<br/>Obj_Acad.Visible = True<br/>Set Obj_Doc = Obj_Acad.ActiveDocument<br/>Set Obj_ModelSpace = Obj_Doc.ModelSpace</p><p>Bool = True<br/>Block_bool = False</p><p>End Sub</p><p>我这样打开的CAD都是CAD默认的acadiso.dwt</p><p>我是想用vb代码启动CAD,在每次启动时都启动我自己做的DWT(比如123.dwt),而不是CAD默认的acadiso.dwt。</p><p>能否给我一段代码参考一下。</p>

wuyunpeng888 发表于 2009-11-22 14:43:00

<p>在这里设置一下不就行了</p><p></p><p>设置Preferences对象</p><p>把那个无 改成你的模板不就行了嘛</p>

yuliang2477 发表于 2009-11-23 21:00:00

<p>能不能用代码在程序里做啊?</p><p></p>

wuyunpeng888 发表于 2009-11-23 23:00:00

<p class="1-liner">设置Preferences对象</p><p class="1-liner">Application.preferences.Files.TemplateDwgPath</p><p class="1-liner">指定“启动”向导所使用样板文件的路径。</p><p class="Heading-2">语法 </p><p class="syntax">object.TemplateDWGPath </p><p class="element">object</p><p class="element-desc"><a href="mk:@MSITStore:F:\编程\作品\CAD二次开发\HELP\acadauto.chm::/idh_preferencesfiles_object.htm">PreferencesFiles</a><br/>使用该属性的对象。 </p><p class="element">TemplateDWGPath</p><p class="element-desc">String[字符串]; 可读写<br/>样板文件目录的驱动器名和路径。</p><p class="element-desc"></p>

wuyunpeng888 发表于 2009-11-23 23:03:00

<pre class="Code">Sub Example_PageSetupOverridesTemplateFile()

' 注意: 修改文件路径和名称为你系统中的有效文件。
       
        Dim MyFiles As IAcadPreferencesFiles2
        Set MyFiles = AcadApplication.Preferences.Files
        MyFiles.PageSetupOverridesTemplateFile = "C:\MyTemplate.dwt"

End Sub</pre>

wuyunpeng888 发表于 2009-11-23 23:05:00

<p class="1-liner">设置 QNEW 命令的默认样板文件名称。</p><p class="h1-access"><a href="mk:@MSITStore:F:\编程\作品\CAD二次开发\HELP\acadauto.chm::/QNewTemplate_see_also.htm">参阅</a> | <a href="mk:@MSITStore:F:\编程\作品\CAD二次开发\HELP\acadauto.chm::/ex_QNewTemplate.htm">示例</a></p><p class="Heading-2">语法 </p><p class="syntax">object.QNewTemplateFile </p><p class="element">Object</p><p class="element-desc"><a href="mk:@MSITStore:F:\编程\作品\CAD二次开发\HELP\acadauto.chm::/idh_preferencesfiles_object.htm">PreferencesFiles</a><br/>使用该属性的对象。 </p><p class="element">QNewTemplateFile</p><p class="element-desc">String[字符串]; 可读写<br/></p><p class="Heading-2">说明 </p><p class="body">该属性值控制用于 <a href="ms-its:acad161.chm::/QNEW.htm">QNEW</a> 命令的默认样板。要使用该属性,必须声明一个对象为 AcadPrefrencesFiles 对象。</p>

yuliang2477 发表于 2009-11-25 08:38:00

<p>太感谢大家了</p><p>我试一下</p>

lwd899 发表于 2011-1-27 08:46:30

我用下面的代码打开的(vb2008):
'连接CAD并打开dwt模板
    Public Sub GetCadwithdwtfrw(ByVal opendwt As Boolean, ByVal dwtpath As String)
      Try
            AcadApp = GetObject("autocad.application")
      Catch ex As Exception
            Try
                AcadApp = CreateObject("autocad.application")
            Catch ex1 As Exception
                MsgBox("无法打开AutoCAD")
                Exit Sub
            End Try
      End Try

      AcadApp.Visible = True
      AppActivate(AcadApp.Caption)
      AcadApp.Documents.Close()   '关闭cad文档
      AcadApp.Documents.Add(dwtpath)'打开dwt模板
      ThisDrawing = AcadApp.ActiveDocument
    End Sub

但是又有这样一个问题,我的dwt模板是cad2007下另存的,昨天在别人的机子上试的时候(他用的是cad2006),发现打开后我设置的图层,文字样式等都没有了,是不是06打不开高版本的dwt?那么我如何做才能让所有版本的cad都能打开已经设置好的dwt模板呢?
页: [1] 2
查看完整版本: 如何用代码控制CAD打开时的dwt模板