menucmd函数获取秒以后的字符该怎么输入? 另外还有一个奇怪的问题
本帖最后由 masterlong 于 2018-10-7 19:10 编辑(menucmd "M=$(edtime,$(getvar,date),MODDHHMMSS取秒以后的字符该怎么输入?)")
CAD突然多个自定义程序不能正常使用
经查程序中含command调用命令
且该命令在非command调用时有对话框
运行自定义程序时
程序会弹出对话框而不执行command里后续的选项
比如下面
(defun c:11()
(setvar "cmdecho" 0)
(command "layer" "on" "*" "")
)
正常应该是打开所有图层
但是现在会打开图层特性管理器
命令行提示“未知命令***”
这个问题极大得影响了工作
偶然运行了我的另一个设置CAD环境变量的程序后
问题消失了
而且是同一CAD打开的其它dwg里都消失了
然而在这个程序里并没有特别的设置???
百思不得其解
请高手指点
顺便说一句
问题出现也是突然的
前面还用过的程序
突然就不能用了???
程序如下
;;CAD系统变量设置(2004~2012)
(defun c:F9 ()
(setvar "cmdecho" 0)
(setvar "highlight" 1);;高亮开
(setvar "WMFBKGND" 0);;文档背景白色
(setvar "UCSICON" 0) ;;UCS坐标关及非原点
(setvar "DRAGP1" 1)
(setvar "DRAGP2" 1)
(setvar "TREEMAX" 1000000)
(setvar "autosnap" 21);;;;自动捕捉设置
(setvar "xclipframe" 0);;;;块剪裁边界不显示(若原图参数不为0,执行时会重生成)
(setvar "pickfirst" 1);;;;选择集模式(先选择后执行)
(setvar "pickdrag" 0);;;;允许框选
(setvar "qaflags" 0) ;;;;选择执行方式
(setvar "edgemode" 1);;;;修剪和延伸时,参照曲线假想延伸
(setvar "blipmode" 0);;;;控制点回显
(setvar "auprec" 2);;;;角度精度:小数点后2位
(setvar "lunits" 2);;;; 线性长度类型:小数
(setvar "luprec" 2);;;;线性长度精度:小数点后2位
(setvar "insunits" 0);;;;插入时缩放单位:毫米
(setvar "cmddia" 1);;;;显示外部命令及plot对话框:是
(setvar "aunits" 0) ;;;;角度单位:十进制度数
(setvar "mirrtext" 0);;;;镜像文字:否
(setvar "Elevation" 0);;;; 当前标高设为0
(setvar "dimassoc" 1);;;;新标注可关联:否
(setvar "snapmode" 0);;;;捕捉间距:否
(setvar "coords" 2) ;;;;图形坐标显示(极值)
(setvar "shortcutmenu" 0) ;;;;自定义右键单击(右键均为确认)
(setvar "pickbox" 6) ;;;;拾取框大小:6
(setvar "gridmode" 0);;;; 显示点栅格:否
(setvar "psltscale" 0);;;;1:视口比例决定线型比例
(setvar "dimzin" 8);;;; 控制是否对主单位值作消零处理, 8:消除后续零
(setvar "cursorsize" 100) ;;;;十字光标大小:100
(setvar "tooltips" 0);;;;显示工具提示:否
(setvar "hpassoc" 1) ;;;填充图案是否关联:是
(setvar "proxyshow" 0);;;代理图形不显示
(setvar "proxynotice" 0) ;;;代理图形对话框(不显示)
(setvar "ISAVEBAK" 1);;;控制备份文件 (BAK) 的创建。1-创建, 0-不创建
(setvar "zoomfactor" 60) ;;;;鼠标滑轮缩放比例(默认为60)
(vla-put-displayscrollbars (vla-get-display (vla-get-preferences (vlax-get-acad-object))) 0) ;;;不显示窗口滚动条;;手改一次即可
(setvar "filedia" 1) ;;;;显示文件定位对话框;;这个不自动设置,因为某些程序,如文件批处理程序需要关闭它
(setq cadvvver (atof (substr (getvar "ACADVER") 1 2)))
(if (<= 17 cadvvver)
(progn
(setvar "selectionpreview" 0);;;;选择集预览模式
(setvar "previewfilter" 31);;;;选择集预览模式
(setvar "vtenable" 2) ;;;;动态视图动画关闭
(setvar "osnapoverride" 0) ;;;;组合按键控制(用于组合按键用过后框选不了的情况)
(setvar "DYNmode" 0) ;;;;动态输入(无)
(setvar "DYNprompt" 0) ;;;不显示动态输入中的提示
(setvar "DYNPIFORMAT" 0) ;;;动态输入格式:极轴格式
(setvar "DYNPICOORDS" 0) ;;;动态输入格式:相对坐标
(setvar "DYNPIVIS" 0) ;;;动态输入不可见性:需要一个点时
(if (<= 18 cadvvver)
(progn
(setvar "qpmode" -1) ;;;;不显示快捷特性面板;;-1不显示,2有限制的显示
(setvar "rollovertips" 0);;;;显示鼠标悬停提示:否(适用于CAD2009及更高版本)
(setvar "ucsdetect" 0) ;;;;动态UCS关闭(适用于CAD2010及更高版本)
(setvar "menubar" 1) ;;;;关闭菜单栏(适用于CAD2010及更高版本)*****以此区分当前设置的变量状态及捕捉方式>>>>>>>>>>>>>>>
(setvar "statusbar" 1) ;;;;状态栏控制:不隐藏(适用于CAD2010及更高版本)
)
(if (<= 19 cadvvver)
(progn
(setvar "hpquickpreview" 0) ;;;;控制在指定填充区域时是否显示填充图案的预览,设为0会加快填充速度(适用于CAD2010及更高版本)
(setvar "gripmultifunctional" 1);;;;动态夹点菜单关闭(适用于CAD2010及更高版本)
(setvar "navbardisplay" 0) ;;;关闭三维小控制栏
;;2012以上还有更多的需要改变默认设置的系统变量,暂时找不到对应的变量名,待添加
)
)
)
)
)
(princ)
)
(menucmd "M=$(edtime,$(getvar,date),MODDHHMMSSMSEC)")
关于第1个问题
网上查了下
有一种说法是“yyyy-MM-dd HH:mm:ss.fff”
f的个数代表精度
但是lsp中无效
(setq
date(rtos (getvar "cdate") 2 6)
年(substr date 3 2) ;1 4
月(substr date 5 2)
日(substr date 7 2)
tim (substr date 10)
时(substr tim 1 2)
分(substr tim 3 2)
秒(substr tim 5 2)
datime (strcat "(" 年 "" 月 "" 日 "_" 时 "" 分 "" 秒 ")")
) 重点是如何在menucmd函数中获取 留一个脚印,备用 USER2128 发表于 2018-10-8 09:38
(menucmd "M=$(edtime,$(getvar,date),MODDHHMMSSMSEC)")
有了这个就可以做有名字的块了。谢谢
页:
[1]