bgator220 发表于 2022-7-6 10:20:01

带lisp程序的内存

嘿,有没有在autocad中存储变量。以便下次打开autocad时加载lisp程序,它可以调用上次运行时的变量?
 
在打开autocad时,是否需要cad预加载lisp程序。只是为了节省加载应用程序的步骤。
 
此外,是否有lisp命令来输出日期和时间?
 
谢谢你的帮助!

Small Fish 发表于 2022-7-6 10:44:57

 
在帮助文件中查找系统变量:USERR1、USERR2等
 
 
您可以将宏添加到自定义CUI中,以便无论是使用下拉菜单还是工具栏等自动加载宏。您也可以使用Acaddoc。lsp文件(需要创建)和appload对话框中的启动套件。
 
试试这个。。。 

;-----------------
;Get time and date
;-----------------
;Get Date
(defun c:GetDateTime ( / )
(setq d (rtos (getvar "CDATE") 2 6)
   yr (substr d 3 2);extract the year
   mo (substr d 5 2);extract the month
   day (substr d 7 2);extract the day
);setq
;Get Time
(setq d (rtos (getvar "CDATE") 2 6);extract the hour
   hr (substr d 10 2)
   m (substr d 12 2);extract the minute
);setq
(alert
(strcat
"Date: "(strcat day "/" mo "/" yr)
"\nTime: "(strcat hr ":" m )
);strcat
);alert
(princ)
);defun

Grant 发表于 2022-7-6 11:09:49

关于你的第二点:
在预定义的autocad目录中,或在“选项-文件-支持文件搜索路径”中自己创建一个目录
 
启动名为“acaddoc”的记事本文件。lsp'
 
放置:
(defun s::启动()
(命令“ucs”“world”)
)
(defun c:mco()(加载“mymacro”))
 
这将确保每次打开Autocad时,图形UCS都是“world”,如果在命令行中键入“mco”,mymacro将运行
 
您也可以将此文件设置为“acad”。“lsp”和“选项-系统”中有一个“加载acad”。lsp与每一个图纸'-检查这一点,同样的事情会发生。
 
关于你的第三点:
尝试键入“setvar”输入“”?“”输入“enter”,autocad的大多数变量都会出现,您可以调用这些变量(如果需要,可以更改一些变量)来表示日期和时间。我使用的另一种方法是:
 
(setq daytext(menucmd“m=$(edtime,$(getvar,date),dddd)”)
(setq monthtext(menucmd“m=$(edtime,$(getvar,date),month)”)
(setq yeartext(menucmd“m=$(edtime,$(getvar,date),yyyy)”)
 
第一点:除了在lisp例程中编写一个脚本文件来存储该变量,并在重新运行lisp例程时查找该脚本文件之外,我想不出一个好的方法
 
希望这有帮助

Lee Mac 发表于 2022-7-6 11:20:36

日期:
 
其中格式为:
 
一些示例:
 
(LM:FormatDate "DD.MO.YYYY HH:MM:SS")
(LM:FormatDate "DDDD DD MONTH YYYY")
5
6
页: [1]
查看完整版本: 带lisp程序的内存