本帖最后由 自贡黄明儒 于 2012-11-23 10:29 编辑
;;1 是不是可以不动用注册表,设置一个自己的变量?
;; 如果是这样,比使用注册表操作函数简单多了
- (if (null (getenv "LMac\\ABBRotation"))
- (setenv "LMac\\ABBRotation" "ON")
- )
;;2 (startapp (findfile "EduPlotStamp.exe"))如果写成(startapp "EduPlotStamp.exe")在有些机器上是不能运行的
;; 尽管肯定是在支持目录下.
;;3 Vlisp编辑器在输出局部变量时,不认识pause为系统自己的保留字,会把它当作局部变量
;;4 选择集相减
;;ss1 ss2选择相同的东西
- (setq ss1 (ssget))
- (setq ss2 (ssget))
- (equal ss1 ss2) ;返回nil
- (command "._Select" ss1 "_Remove" ss2 "")
- (sslength (setq ss (ssget "_P"))) ;ss 不为空 看来用Select的方法相减还是件麻烦的事
;;看来还是用下面的方法可靠些
- ;;(setq ss1 (ssget)) (setq ss2 (ssget))
- ;;***********************功能 选择集相减
- ;;返回 选择集 or nil
- ;;(setq ss1 (ssget)) (setq ss2 (ssget))
- (defun C:SS_Sub (SS1 SS2 / ENAME SS SSTEMP)
- (cond ((and (equal (type ss1) 'PICKSET)
- (equal (type ss1) 'PICKSET)
- )
- (cond ((equal (sslength ss1) (sslength ss2))
- (vl-cmdf "_.select" ss1 "")
- (setq ss (ssget "p"))
- (vl-cmdf "_.select" ss2 "")
- (setq ssTemp (ssget "p"))
- (repeat (sslength ssTemp)
- (Setq ENAME (SsName ssTemp 0))
- (SsDel ENAME ssTemp)
- (if (ssmemb ENAME ss)
- (SsDel ENAME SS)
- )
- )
- (if (equal (sslength ss) 0)
- nil
- ss
- )
- )
- (T
- (command "._Select" ss1 "_Remove" ss2 "")
- (ssget "_P")
- )
- )
- )
- ((and (equal (type ss1) 'PICKSET)
- (not (equal (type ss2) 'PICKSET))
- )
- ss1
- )
- (T nil)
- )
- )
- ;;自贡黄明儒2012.8.23
- ;;***********************功能 选择集相减
;;5 自定义了acad.lsp,有些cad并不加载它,这是为什么呢?难道是电脑智能,怕了acad.lsp病毒,挥刀自宫了?
|