明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2281|回复: 0

圆的中心线[原创]

[复制链接]
发表于 2002-6-7 15:20:00 | 显示全部楼层 |阅读模式
;这是一个基于AutoCAD 14.0下关于画中心线的程序
;它可以在P_CENTER层上画出选中的圆或圆弧的中心线
;本程序作者b.w
;本程序无偿使用
;如有更好建议,请联系b.w
;版本:1.0.00
;日期:27/12-2001

(defun B_DRAW_CLINE
  (
  cen
  rad
  /
  current_layer
  lay_exist
  lay_line
  current_lt
  )
  (setq current_layer (getvar "CLAYER"))
  (setq lay_exist (tblsearch "layer" "_CENTER"))
  (if (/= lay_exist nil)
    (setvar "CLAYER" "_CENTER")
    (setvar "CLAYER" current_layer)
  );end-if
  (setq lay_line (tblsearch "LTYPE" "CENTER"))
  (if (= lay_line nil)
      (command "-layer" "l" "center" "" "l" "" "" ""
      );end-command
  );end-if
  (setq current_lt (getvar "CELTYPE"))
  (if (/= current_lt "CENTER")
    (setvar "CELTYPE" "CENTER")
    (setvar "CELTYPE" "BYLAYER")
  );end-if
  (setvar "OSMODE"        0)
  (command "line" (list (+ (car cen) (* rad 1.2)) (cadr cen) 0)
                  (list (- (car cen) (* rad 1.2)) (cadr cen) 0) ""
  );end-command
  (command "line" (list (car cen) (+ (cadr cen) (* rad 1.2)) 0)
                  (list (car cen) (- (cadr cen) (* rad 1.2)) 0) ""
  );end-command
  (setvar "OSMODE"        51)
   ;end-command
  (setvar "CELTYPE" current_lt)
  (setvar "CLAYER" current_layer)
);end-B_DRAW_CLINE

(defun B_CIRCLINE
  (
  /
  ent
  ifcircle
  center
  radius
  )
  (setq ent (entget (car (entsel))))
  (setq ifcircle (cdr (assoc 0 ent)))
  (if (or (= ifcircle "CIRCLE") (= ifcircle "ARC"))
    (progn
      (setq center (cdr (assoc 10 ent)))
      (setq radius (cdr (assoc 40 ent)))
      (B_DRAW_CLINE center radius)
    );end-progn
    (prompt "\nThis is not a circle or arc!")
  );end-if
  (princ)
);end-B_CIRCLINE
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 15:23 , Processed in 0.160797 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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