669423907 发表于 2013-9-14 10:55:12

请问如何把(setq TC2 ?) 中的?设为一个图层?

向大师们请教一个问题:请问如何把 (setq TC2 ?)中的?设为一个图层?谢谢

lisp爱好者 发表于 2013-9-14 11:01:20

本帖最后由 lisp爱好者 于 2013-9-14 11:10 编辑

首先偶不是大师,你所指的图层是啥,是图层名就用下面的语句,仅为示例
(setq TC2 (cdr(assoc 8 (entget (car(entsel))))))

669423907 发表于 2013-9-14 13:56:57

lisp爱好者 发表于 2013-9-14 11:01 static/image/common/back.gif
首先偶不是大师,你所指的图层是啥,是图层名就用下面的语句,仅为示例
(setq TC2 (cdr(assoc 8 (entget ( ...
请问要怎么用呢?比方说是 图号2
“图号2”是一个图层名

VBALISPER 发表于 2013-9-14 17:45:16

        (setq tcm1 "xxx");定义图层名
        (if
        (= (tblobjname "LAYER" tcm1) nil);没有该图层
          (command "layer" "n" tcm1 "c" "7" "" "");建立图层
        );if

669423907 发表于 2013-9-15 08:36:21

非常感谢各位的回答,只是我,如此,这般的........不懂

本是想试着改一个通用程序的,把黄大侠的;; 末尾数字+1 自贡黄明儒 2013-6-24 http://bbs.mjtd.com/thread-102143-1-1.html

;;---------------------------------另类拷贝AnotherCopy
;; 末尾数字+1 自贡黄明儒 2013-6-24 http://bbs.mjtd.com/thread-102143-1-1.html
;;ayEntSSHighLight见<a href=\"http://bbs.mjtd.com/thread-101674-1-1.html\" target=\"_blank\">http://bbs.mjtd.com/thread-101674-1-1.html</a>

(defun c,(/ SS0)
(load "阵列复制递增 ACOPY SARRAY.VLX");SARRAY,ACOPY
(if (setq ss0 TC1)
(CC:AC ss0)
(dty)))

(defun CC:AC (ss0 / P0)
;;2对象na之后所有实体产生的选择集
(defun newsel      (na / ss e1)
    (if      na
      (setq na (entnext na))
      (setq na (entnext))
    )
    (setq ss (ssadd))
    (while na
      (setq e1 (entget na))
      (if (wcmatch (LI_item 0 e1) "VERTEX,SEQEND,ATTRIB")
      nil
      (setq ss (ssadd na ss))
      )
      (setq na (entnext na))
    )
    ss
)
;;3copy
(defun do-copy (ss0 p0 / A BOOL PT SS SS1 SS2)
    (setq bool T)
    (setq ss ss0
          pt p0
    )
    (while bool
      (setq a (entlast))
      (princ "\n >>下一点或者输入距离:")
      (command "_.copy" ss "" pt pause)
      (setq ss1 (newsel a))
      (ayEntSSHighLight ss)
      (command "._Select" ss1 "")
      (if (setq ss2 (ssget "_p" '( TC2 (0 . "*TEXT,ATTDEF,INSERT"))))(SA_change ss2));这句让文字尾数+1
      (if (equal pt (setq pt (getvar "lastpoint")) 0.001)
      (progn (command "undo" "2") (setq bool nil))
      )
      (setq ss ss1)
      ;;(princ (getvar 'errno))
    ))
;;4主程序
(command "undo" "be")
(if (and ss0
         (setq p0 (getpoint "\n >基点:"))
      )
    (do-copy ss0 p0)
)
(command "undo" "e")
(princ))



(defun c:cc()
(setq TC1 (ssget '((8 . "名称1,图号2,数量3,材质4,表格5,6不打印,99图框"))))
(setq TC2 ?);;?=图号2(图层)
(c,))



(defun c:ca()
(setq TC1 (ssget));;无限制
(setq TC2 ?);;无限制
(c,))

该怎么写呢?
页: [1]
查看完整版本: 请问如何把(setq TC2 ?) 中的?设为一个图层?