我正在拼凑一个LISP,它允许用户在可以从LISP插入的注释旁边输入数字。我将其设置为在特定层上插入数字。如果有人删除或添加了一个层,并希望重新运行数字,则该层将被删除,并重新创建一个新的数字集。我意识到,如果有人在这一层上放了东西(即使有所有的警告不要这样做),这并不是最好的方法。我试着创建一个选择集,然后用其中的数字创建一个块。
有人能帮我编写代码吗?或者告诉我有没有更好的方法来完成这项工作?
-
- (defun C:notenumbers (/ ECL EOM EOS ECC ECE EFS)
- (setq ECL (getvar "clayer"))
- (setq EOM (getvar "orthomode"))
- (setq EOS (getvar "osmode"))
- (setq ECC (getvar "cecolor"))
- (setq ECE (getvar "cmdecho"))
- (setq EFS (getvar "style"))
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (command "laydel" "N" "CCC_SHEET_LAYOUT_Note_Numbers" "" "YES")
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (if (null (tblsearch "STYLE" "CCC_Note_Numbers"))
- (progn
- (entmake
- (list
- (cons 0 "STYLE")
- (cons 100 "AcDbSymbolTableRecord")
- (cons 100 "AcDbTextStyleTableRecord")
- (cons 2 "CCC_Note_Numbers")
- (cons 3 "Verdana.ttf")
- (cons 40 0)
- (cons 74 1) ;Bold
- (cons 70 0)))))
- ;(command "_-style" "CCC_Note_Numbers" "verdana.ttf" "0" "1" "0" "N" "N")
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (if (null (tblsearch "layer" "CCC_SHEET_LAYOUT_Note_Numbers"))
- (progn
- (entmake
- (list
- (cons 0 "LAYER")
- (cons 100 "AcDbSymbolTableRecord")
- (cons 100 "AcDbLayerTableRecord")
- (cons 2 "CCC_SHEET_LAYOUT_Note_Numbers")
- (cons 62 7)
- (cons 70 0)
- (cons 370 30)))))
- ;(command "_-layer" "s" "CCC_SHEET_LAYOUT_Note_Numbers" "")
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (setvar "textstyle" "CCC_Note_Numbers")
- (setvar "clayer" "CCC_SHEET_LAYOUT_Note_Numbers")
- (setvar "osmode" 4)
- (setq myheight 2.5)
- (setq mynumber 1)
- (setq myincrement 1)
- (setq mypoint (getpoint "\nPick point: "))
- (while mypoint
- (command "text" "j" "BL" mypoint myheight "0" (itoa mynumber))
- (setq mynumber (+ mynumber myincrement))
- (setq mypoint (getpoint "\nPick point: "))
- )
- ;(setq sel1 (ssget entlast))
- ;(setq sel1 (ssadd ent sel1))
- (alert (strcat sel1))
- ;(command "_-block" "notenos" "0,0" sel1)
- (setvar "clayer" ECL)
- )
|