Создание блока для разбивки трасс
(defun ru-block-make-for-measure (unit_block
new_block_size_mm
new_block_rotate
/
new_block_size_unit
new_block_name
)
;;;Создание блока для разбивки трасс
;;; unit_block - единичный блок определенный в рисунке
;;; new_block_size_mm - размер генерируемого блока в мм на бумаге
;;; new_block_rotate угол наклона блока
;;; масштаб блока в единицах чертежа
;|
(ru-block-make-for-measure (setq unit_block "колонна_1")
(setq new_block_size_mm 10) (setq new_block_rotate 45))
|;
(if (tblsearch "block" unit_block)
(progn
(setq new_block_size_unit
(ru-conv-millimeter-in-paper-to-unit new_block_size_mm)
;; имя нового блока =
;; unit_block+масштаб+угол+суффикс
;; ("мм" или "м")
new_block_name
(strcat unit_block
(rtos (ru-scale-current-space) 2 0)
"_"
(rtos new_block_rotate 2 0)
(ru-unit-name)
) ;_ end of strcat
) ;_ end of setq
(if (not (tblsearch "block" new_block_name))
;; если такой блок еще не создавался
(mapcar
'entmake
(list
(list '(0 . "BLOCK")
'(100 . "AcDbEntity")
'(100 . "AcDbBlockBegin")
(cons 2 new_block_name)
'(10 0.0 0.0 0.0)
'(62 . 256)
'(8 . "0")
'(70 . 0)
) ;_ end of list
(list '(0 . "INSERT")
'(100 . "AcDbEntity")
'(100 . "AcDbBlockReference")
(cons 2 unit_block)
'(8 . "0")
'(10 0.0 0.0 0.0)
'(62 . 0)
(cons 41 new_block_size_unit)
(cons 42 new_block_size_unit)
(cons 43 new_block_size_unit)
(cons 50 new_block_rotate)
) ;_ end of list
(list '(0 . "ENDBLK")
'(100 . "AcDbEntity")
'(100 . "AcDbBlockEnd")
'(8 . "0")
) ;_ end of list
) ;_ end of list
) ;_ end of mapcar
) ;_ end of if
new_block_name
) ;_ end of progn
nil
) ;_ end of if
) ;_ end of defun