AutoCAD LISP 建立或刪除複線樣式

可以利用由 Lee Mac 所寫的函數

新增MLine樣式

;;-------------------=={ Add MLine Style }==------------------;;
;;                                                            ;;
;;  Adds an MLine Style to the ACAD_MLINESTYLE dictionary     ;;
;;------------------------------------------------------------;;
;;  Author: Lee McDonnell, 2010                               ;;
;;                                                            ;;
;;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;
;;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;
;;------------------------------------------------------------;;
;;  Arguments:                                                ;;
;;  data - a DXF list of MLineStyle data                      ;;
;;------------------------------------------------------------;;
;;  Returns:  MLineStyle Dictionary Entity, else nil          ;;
;;------------------------------------------------------------;;


(defun LM:AddMLineStyle ( data / dic obj )
 ;; © Lee Mac 2010
 (if (and (setq dic (dictsearch (namedobjdict) "ACAD_MLINESTYLE"))
          (not (dictsearch (setq dic (cdr (assoc -1 dic))) (cdr (assoc 2 data))))
          (setq obj (entmakex data)))
   (dictadd dic (cdr (assoc 2 data)) obj)
 )
)


刪除MLine樣式

;;-----------------=={ Delete MLine Style }==-----------------;;
;;                                                            ;;
;;  Removes an MLine Style from the ACAD_MLINESTYLE           ;;
;;  dictionary                                                ;;
;;------------------------------------------------------------;;
;;  Author: Lee McDonnell, 2010                               ;;
;;                                                            ;;
;;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;
;;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;
;;------------------------------------------------------------;;
;;  Arguments:                                                ;;
;;  name - the name of an MLine Style to remove               ;;
;;------------------------------------------------------------;;
;;  Returns:  Entity name of removed style, else nil          ;;
;;------------------------------------------------------------;;


(defun LM:DeleteMLineStyle ( name / dic )
 ;; © Lee Mac 2010
 (if (setq dic (dictsearch (namedobjdict) "ACAD_MLINESTYLE"))   
   (dictremove (cdr (assoc -1 dic)) name)
 )
)



測試新增樣式

(defun Example ( / lst )
 (setq lst
   (list
     (cons 0 "MLINESTYLE")
     (cons 100 "AcDbMlineStyle")
     (cons 2 "Example") ; Name 樣式名稱
     (cons 70 (+ 272))  ; caps/fill/joints 樣式旗標(收頭/填滿/接合)
     (cons 3 "")        ; Desc 樣式說明
     (cons 51 (/ pi 2.)); Start ang 起始角度
     (cons 52 (/ pi 2.)); End ang 結束角度
     (cons 71 2)        ; Number of lines 元素數目
     (cons 49 -0.5)     ; Element Offset 元素偏移
     (cons 62 256)      ; Element Colour 元素顏色
     (cons 6 "BYLAYER") ; Element Linetype 元素線型
     (cons 49 0.5)
     (cons 62 256)
     (cons 6 "BYLAYER")
   )
 )
 (LM:AddMLineStyle lst)
)


相關連結

AutoCAD LISP 複線的相關程式




留言

這個網誌中的熱門文章

AutoCAD 填充線(剖面線)樣式簡易製作產生器

AutoCAD 如何自訂線型教學

AutoCAD 動態圖塊-如何在所有可見性顯示或隱藏