明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2807|回复: 6

笔记之一

[复制链接]
发表于 2012-3-22 15:23:43 | 显示全部楼层 |阅读模式
本帖最后由 自贡黄明儒 于 2012-3-22 15:24 编辑

;;1 (getvar "cmdnames")检测正在运行的命令
;;结束在运行的命令
(while (not (equal (getvar "cmdnames") "")) (command nil))

;;2 选择集
;;2.1  获取已选对象
(setq ss (ssgetfirst))
;;2.2  恢复预选对象
(if (and ss (equal 1 (logand 1 (getvar "pickfirst"))))
  (sssetfirst (car ss) (cadr ss))
)
;;2.3  将选择集SS设为已选择状态
(sssetfirst nil SS)
;;2.4  获取当前激活的选择集,而过滤器则保证从中筛选出符合条件的对象。
(setq SS (ssget "_I" FIL))
;;2.5 用Select之后,(ssget "_P")就可得到这个选择集
(command "._Select" ss1 "")
(setq ss (ssget "_p" '((0 . "*TEXT"))))
;;2.6  两选择集相加,之后_p得相加选择集(减"_Remove")
(command "._Select" ss1 "_add" ss2 "")
(setq ss (ssget "_p"))

;;3  (b_layer_locked "0"),0层锁后返回T
(defun b_layer_locked (la / na e1)
  (setq
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2012-3-22 15:28:00 | 显示全部楼层
;;3  (b_layer_locked "0"),0层锁后返回T
(defun b_layer_locked (la / na e1)
  (setq        na (tblobjname "layer" la)
        e1 (entget na)
  )
  (equal 4 (logand 4 (cdr (assoc 70 e1))))
)

;;4  返回a在表lst中的位置 or nil
(defun position        (a lst / b)
  (if (setq b (member a lst))
    (progn (setq b (- (length lst) (length b))))
  )
  b
)

;;5 关键字a的列表框增加内容
(defun mpoplst (a lst / n)
  (start_list a 3)
  (setq n 0)
  (repeat (length lst)
    (add_list (nth n lst))
    (setq n (+ n 1))
  )
  (end_list)
)

;;6  旋转一个点
;;Rotate 'pnt'点 from a base point of 'p1' and through an angle
;;of 'ang' (in radians)
(defun rotate_pnt (pnt p1 ang /)
  (polar p1 (+ (angle p1 pnt) ang) (distance p1 pnt))
)

;;7  缩放一个点
;;scale 'pnt' from a base point of 'p1' by a factor of fact
(defun scale_pnt (pnt p1 fact /)
  (polar p1 (angle p1 pnt) (* fact (distance p1 pnt)))
)

;;8.1  如a为"C:\\Program Files\\AutoCAD 2005\\support\\AlignObject.VLX"
;;返回"AlignObject.VLX"
(defun pstrip (a / b)
  (cond        ((setq b (strsea "\\" a)) (setq b b))
        ((setq b (strsea "/" a)) (setq b b))
        (T (setq b (list 0)))
  )
  (setq a (substr a (+ (last b) 1) (strlen a)))
)

;;8.2  去文件名扩展,比如去掉.exe
(defun xstrip (fna / st)
  (if (and (setq st (strsea "." fna))
           (<= (- (strlen fna) 3) (last st))
      )
    (setq fna (substr fna 1 (- (last st) 1)))
  )
  fna
)
(defun strsea (a b / c n)
  (cond        ((equal "" a) (setq c nil))
        ((not (equal (type b) (type "1")))
         (progn        (print "!!!!不是字符串!!!!")
                (print b)
                (setq c nil)
         )
        )
        (T
         (progn        (setq n 1)
                (while (>= (+ (- (strlen b) n) 1) (strlen a))
                  (if (equal (substr b n (strlen a)) a)
                    (setq c (append c (list n))
                          n (- (+ n (strlen a)) 1)
                    )
                  )
                  (setq n (+ n 1))
                )
         )
        )
  )
  c
)
;;8.3
(fnsplitl "C:\\Program Files\\AutoCAD 2004\\acad.exe")
;;返回("C:\\Program Files\\AutoCAD 2004\\" "acad" ".exe")


;;10  p1是否在p2 p3线上
(defun what_side (p1 p2 p3 / a dx dx1 dy dy1)
  (setq        dx  (- (car p3) (car p2))
        dy  (- (cadr p3) (cadr p2))
        dx1 (- (car p1) (car p2))
        dy1 (- (cadr p1) (cadr p2))
  )
  (setq        a (- (* dx dy1) (* dy dx1))
        a (rtos a 2 6)
        a (atof a)
  )
  (if (not (equal 0.0 a))
    (setq a (/ a (abs a)))
  )
  a
)

;;11  符号Layer,Ltype,Viewx,Style,Block,Appid,Ucs,Dimstyle和Vport列表
;;示例(xyp-get-tblnext "Layer")
(defun xyp-get-tblnext (table-name / lst d)
  (while (setq d (tblnext table-name (null d)))
    (setq lst (cons (cdr (assoc 2 d)) lst))
  )
  (reverse lst)
  lst
)

;;12.1 亮显选择集或对象(夹点不显示) 函数
;;;*****************************************
(defun ayEntSSHighLight(SSorEntName / oldGrips)
(setq oldGrips (getvar "Grips"))
(setvar "Grips" 0)
(cond
   ((= (type SSorEntName) 'PICKSET)
    (sssetfirst nil SSorEntName)
   )
   ((= (type SSorEntName) 'ENAME)
    (sssetfirst nil (ssadd SSorEntName (ssadd)))
   )
)
(setvar "Grips" oldGrips)
)
;;12.2
(vla-highlight OBJ 1)
;;12.3
(redraw en 4);不亮显
(redraw en 3);亮显
发表于 2012-3-22 15:36:14 | 显示全部楼层
鼎!!!!!
发表于 2012-3-22 19:57:29 | 显示全部楼层
好东西,收藏了~~
发表于 2012-4-17 16:14:24 | 显示全部楼层
好东东,。…。…。………
发表于 2013-7-4 19:28:01 | 显示全部楼层
学习了!!!!!!!!
发表于 2013-7-4 22:26:59 | 显示全部楼层
才看到,好东西支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-28 11:42 , Processed in 0.207517 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表