|
;这是一个基于 14.0下关于画装配图引出线和名细表的程序
;它可以在装配图上画出指引线并在图框下部写出名细表
;B_catalog_leader_ins :输入的第一点,即指引线的起点
;B_catalog_center_ins :输入的第二点,即画球的球心
;本程序附属文件:B_CATALOG.DWG,B_DRAWING_ZP.DWG,B_DRAWING_DATE.DWG
;本程序作者b.w
;本程序无偿使用
;如有更好建议,请联系b.w
;版本:1.2.01
;现程序改为以输入的第二点画球,改正了0.1.00版画出来的球不容易对齐的缺陷
;现程序改为可以读出上次的输入值,改正了1.1.01版很多相同的要重复输入的缺陷
;日期:11/1-2002
(defun B_CATALOG_DRAW_DATE
(
/
B_catalog_block_sset
B_catalog_attrib_ent
B_catalog_attrib_data
B_catalog_attrib_list
B_catalog_attrib_input
)
(setvar "ATTDIA" 1)
(setvar "OSMODE" 0)
(command "text" "s" "song" "j" "m" (polar B_date_ins (angle '(0 0) '(8 7)) (* B_catalog_scale 5.3150729)) (* B_catalog_scale 3.5) "0" B_catalog_num
);end-command
(if (ssget "x" (list (cons 0 "INSERT") (cons 2 "B_CATALOG")))
(progn
(setq B_catalog_block_sset (ssget "x" (list (cons 0 "INSERT") (cons 2 "B_CATALOG"))))
(setq B_catalog_attrib_ent (entnext (ssname B_catalog_block_sset 0)))
(while (/= (cdr (assoc 0 (entget B_catalog_attrib_ent))) "SEQEND")
(setq B_catalog_attrib_data (cdr (assoc 1 (entget B_catalog_attrib_ent))))
(setq B_catalog_attrib_list (append B_catalog_attrib_list (list B_catalog_attrib_data)))
(setq B_catalog_attrib_ent (entnext B_catalog_attrib_ent))
);end-while取B_CATALOG块的属性值
(setvar "ATTDIA" 0)
(command "insert" "B_CATALOG" B_date_ins B_catalog_scale B_catalog_scale "0"
);end-command
(while B_catalog_attrib_list
(setq B_catalog_attrib_input (car B_catalog_attrib_list))
(setq B_catalog_attrib_list (cdr B_catalog_attrib_list))
(command B_catalog_attrib_input)
);end-while
(setvar "ATTDIA" 1)
(command "ddatte" (ssget "x" (list (cons 0 "INSERT") (cons 2 "B_CATALOG"))))
);end-progn
(command "insert" "B_CATALOG" B_date_ins B_catalog_scale B_catalog_scale "0"
);end-command
);end-if
(setvar "OSMODE" 51)
);end-B_CATALOG_DRAW_DATE
(defun B_CATALOG_DRAW_LEAD
(
/
)
(command "donut" "0" (* B_catalog_scale 0.75) B_catalog_leader_ins ""
);end-command
(command "line" B_catalog_leader_ins (polar B_catalog_center_ins (angle B_catalog_center_ins B_catalog_leader_ins) (* B_catalog_scale 5.0)) ""
);end-command
(command "circle" B_catalog_center_ins (* B_catalog_scale 5.0)
);end-command
(command "text" "s" "song" "j" "m" B_catalog_center_ins (* B_catalog_scale 5.0) "0" B_catalog_num
);end-command
(setvar "OSMODE" 51)
);end-B_CATALOG_DRAW_LEAD
(defun B_CATALOG
(
/
B_catalog_num
B_catalog_scale
B_catalog_leader_ins
B_center_ins
B_catalog_layer
B_drawing_block_sset
B_drawing_attrib_ent
B_date_ins_x
B_date_ins_y
B_date_ins
)
(setvar "OSMODE" 0)
(setq B_catalog_leader_ins (getpoint "请输入第一点: "))
(setvar "OSMODE" 512)
(setq B_catalog_center_ins (getpoint "请输入第二点: "))
(initget 7)
(setq B_catalog_num (getint "请输入序号:"))
(setq B_catalog_scale (cdr (assoc 41 (entget (ssname (ssget "x" (list (cons 0 "INSERT") (cons 2 "B_DRAWING_DATA"))) 0)))))
(setq B_drawing_block_sset (ssget "x" (list (cons 0 "INSERT") (cons 2 "B_DRAWING_DATA"))))
(setq B_drawing_attrib_ent (entget (ssname B_drawing_block_sset 0)))
(setq B_date_ins_x (car (cdr (assoc 10 B_drawing_attrib_ent))))
(setq B_date_ins_y (cadr (cdr (assoc 10 B_drawing_attrib_ent))))
(setq B_date_ins (list B_date_ins_x (+ (+ B_date_ins_y (* B_catalog_scale 68.0)) (* (- B_catalog_num 1) (* B_catalog_scale 7.0)))))
(setvar "OSMODE" 0)
(setq B_catalog_layer (getvar "CLAYER"))
(if (= (tblsearch "layer" "_TMP_MX") nil)
(command "layer" "M" "_TMP_MX" "C" "cyan" "" "")
);end-if
(setvar "CLAYER" "_TMP_MX")
(B_CATALOG_DRAW_LEAD)
(B_CATALOG_DRAW_DATE)
(setvar "CLAYER" B_catalog_layer)
(princ)
);end-B_CATALOG |
|