MikeP 发表于 2022-7-6 07:55:19

我怎样才能写出一个口齿不清的单词呢

我想要这样的东西。显然,这不起作用,虽然有很多我错过了。但是我该怎么做呢
 
(defun c:opend ( / dwg1 dwg2 dwg3)
(setq dwg1 (C:\Jobs\dwg1.dwg))
(setq dwg2 (C:\Jobs\dwg2.dwg))
(setq dwg3 (C:\Jobs\dwg3.dwg))
(prompt "\nwhat drawing would you like to open?")
(command "open" dwg2)

MSasu 发表于 2022-7-6 08:00:34

由于您使用的是仍支持VBA的AutoCAD版本:
但是,请记住,每个图形都有自己的名称空间。
 
 
通常,当要在变量上存储路径时:
(setq dwg1 (C:\Jobs\dwg1.dwg))
(setq dwg1 "C:\\Jobs\\dwg1.dwg")

MikeP 发表于 2022-7-6 08:03:06

我越来越近了吗?
 
 
(defun c:opend ( / dwg1 )
(setq dwg1 "C:\\Jobs\\dwg1.dwg"))
((setq dwg (getkword "\nwhat drawing would you like to open? <>"))
(command "_VBASTMT" (strcat "AcadApplication.Documents.Open dwg))
)

MSasu 发表于 2022-7-6 08:05:04

或者,使用VisualLISP扩展:
(vl-load-com)
(setq dwg1 "\"C:\\Jobs\\dwg1.dwg\"")
(vla-open (vla-get-documents (vla-get-application (vlax-get-acad-object))) "C:\\d1.dwg")

MSasu 发表于 2022-7-6 08:08:10

像这样的?虽然我真的不确定你希望通过这个实现什么。。。
(defun c:opend ( / dwgName dwgPath )
(setq dwgPath "C:\\Jobs\\")

(initget 1 "DWG1 DWG2 DWG3")
(setq dwgName (getkword "\nWhat drawing would you like to open? (Dwg1/Dwg2/Dwg3):"))
(setq dwgName (strcat dwgPath "\"" dwgName ".dwg" "\""))
(command "_VBASTMT" (strcat "AcadApplication.Documents.Open " dwgName))
)
 
你必须更加小心使用括号!

MikeP 发表于 2022-7-6 08:13:23

我有一些画,我喜欢快速访问,我想一个列表,我可以键入一个昵称将是最简单的,而不是使用打开框打开它

BlackBox 发表于 2022-7-6 08:14:26

FWIW-我将其用于许多常用的打开参考图纸。也可以在工具栏/功能区按钮宏中使用。
 

(defun _OpenDwg(dwg readOnly / f oDwg)
;; RenderMan, CADTutor.net
;; Example: (_OpenDwg "FilePath\\FileName.dwg" T)
(vl-load-com)
(if (and (setq f (findfile dwg)) (/= 1 (getvar 'sdi)))
   (vla-activate
   (vla-open (vla-get-documents (vlax-get-acad-object))
               f
               (cond ((= T readOnly) :vlax-true)
                     ((:vlax-false)))))
   (cond (f (prompt "\n** Command not available in SDI mode ** "))
         ((prompt (strcat "\n** \""
                        (strcase (vl-filename-base dwg))
                        "\" cannot be found ** ")))))
(princ))

Lee Mac 发表于 2022-7-6 08:19:15

您可以使用它打开任何文件:
 
http://lee-mac.com/open.html

BlackBox 发表于 2022-7-6 08:23:27

 
... FTFY公司

BlackBox 发表于 2022-7-6 08:25:27

李-出于好奇,这段代码是如何与多个版本(以及默认场景下的整个版本)一起工作的。。。?
 
我还没有测试LM:对我自己开放,但我们已经安装了Land Desktop 2009、Raster Design 2009、Civil 3D 2011、Map 3D 2011、Raster Design 2011、Civil 3D 2012、AMEP 2012和Raster Design 2012。我想知道贝壳是不是。Application InterfaceObject知道是否使用激活版本调用函数打开绘图参数。
 
干杯
页: [1] 2
查看完整版本: 我怎样才能写出一个Lisp程序的单词呢