明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2027|回复: 0

用属性写名细栏[原创]

[复制链接]
发表于 2002-6-7 16:30 | 显示全部楼层 |阅读模式
;这是一个基于AutoCAD 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-10 10:21 , Processed in 0.146773 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表