乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 49|回复: 6

[编程交流] 从打开新图形模板

[复制链接]

3

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 17:19:59 | 显示全部楼层 |阅读模式
我期待着从现有的模板打开一个新的绘图。我知道我已经看过如何在这里做到这一点,但完全没有找到它。有人有建议吗。我只需要一个简单的命令,将打开一个新的绘图,然后我可以保存它。我已经尝试了打开文件路径,但我真的希望一些更简单的东西。
 
谢谢
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 17:33:06 | 显示全部楼层
假设您已经准备好了模板,您是在寻找代码还是命令宏?如果是代码、LISP或VBA或。网
回复

使用道具 举报

3

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 17:44:49 | 显示全部楼层
是的,我有我的模板。宏或Lisp都可以。像nE05这样简单的东西就完美了。
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 17:54:50 | 显示全部楼层
好的,我认为LISP就是你想要的,因为这是最简单的命令
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 18:09:23 | 显示全部楼层
我不是LISP大师,所以可能有一种方法可以在LISP中完成所有这些,但我不知道。我知道你可以做到这一点,那就是创建一个模板。dvb文件,用LISP快捷方式调用宏。
 
  1. Sub Example_New()
  2.    ' This example creates a new drawing based on the template ansi-a.dwt.
  3.    ' Note: The path to the template file is included with its name. Adjust
  4.    ' this path for your installation location before running this example.
  5.    
  6.    Dim templateFileName As String
  7.    templateFileName = "c:\AutoCAD\template\ansi-a.dwt"
  8.    
  9.    ThisDrawing.New templateFileName
  10.    
  11. End Sub

 
这可以称为
  1. (defun c:nE05()
  2. (command "-vbarun" "Example_New")
  3. )

 
当然,替换模板名称和路径。如果你有几个名字,我们可以很快搞定
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 18:11:10 | 显示全部楼层
是的,这在Visual lisp中是可能的。您可以这样定义函数:
 
  1. (defun NewFromTemplate(Template / tmplPat cTmpl)
  2. (vl-load-com)
  3. ; retrieve standard Template folder
  4. (setq tmplPat
  5. (vla-get-TemplateDWGPath
  6.    (vla-get-Files
  7.      (vla-get-Preferences
  8.        (vlax-get-acad-object)))))
  9. ; if template found
  10. (if(setq cTmpl
  11.   (findfile
  12.         (strcat tmplPat "\" Template)))
  13. ; create and activate drawing
  14. (vla-Activate
  15.    (vla-Add
  16.      (vla-get-Documents
  17. (vlax-get-acad-object))
  18.      cTmpl
  19.      )
  20.    )
  21. (alert(strcat "Can't to find template: " Template ))
  22. )
  23. ); end of NewFromTemplate

 
和定义用户命令的短函数。例如:
 
  1. (defun c:tmpl1()
  2. (NewFromTemplate "acadiso.dwt")
  3. (princ)
  4. ); end of c:tmpl1
  5. (defun c:tmpl2()
  6. (NewFromTemplate "acadISO -Named Plot Styles3D.dwt")
  7.   (princ)
  8. ); end of c:tmpl2

 
用于TMPL1和TMPL2命令。作为参数,您必须使用short*。dwt文件名(无完整路径)。
回复

使用道具 举报

3

主题

11

帖子

9

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 18:26:05 | 显示全部楼层
谢谢,这就是我要找的!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 16:32 , Processed in 1.073372 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表