找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 925|回复: 3

[原创]:大样圆圈绘制

[复制链接]
发表于 2005-11-6 11:06:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[PHP]
;;; 大样圆圈绘制
  1.                                                 
  2. (defun c:dyq (/ o_os num pt2 num_ num_ascii)
  3.   (setvar "cmdecho" 0)
  4.   (setq o_os (getvar "osmode"))
  5.   (setvar "BLIPMODE" 1)
  6.   (setq num "1")
  7.   (while (setq pt2 (getpoint "\n点取中心点:")
  8.          )
  9.     (if        (/= pt2 nil)
  10.       (progn
  11.         (princ "\n字符/数值:<")
  12.         (princ num)
  13.         (setq num_ (getstring ">: "))
  14.         (if (= num_ "")
  15.           (setq num num)
  16.           (setq num num_)
  17.         )
  18.         (setq num_ascii (ascii num))
  19.         (cond
  20.           ((and        (<= (strlen num) 2)        ;数字
  21.                 (>= num_ascii 48)
  22.                 (<= num_ascii 57)
  23.            )
  24.            (setq num num)
  25.           )

  26.           ((and        (= (strlen num) 1)        ;a~z
  27.                 (>= num_ascii 97)
  28.                 (<= num_ascii 122)
  29.            )
  30.            (progn (setq num_ascii (- num_ascii 32))
  31.                   (setq num (chr num_ascii))
  32.            )
  33.           )

  34.           ((and        (= (strlen num) 1)        ;A~Z
  35.                 (>= num_ascii 65)
  36.                 (<= num_ascii 90)
  37.            )
  38.            (setq num (chr num_ascii))
  39.           )
  40.         )
  41.         (setvar "osmode" 0)
  42.         (command "donut" 13.5 14.5 pt2 "")
  43.         (command "text" "j" "mc" pt2 "6" 0 num)
  44.         (princ "\n完成,请继续...")

  45.         (cond
  46.           ((and        (<= (strlen num) 2)        ;数字
  47.                 (>= num_ascii 48)
  48.                 (<= num_ascii 57)
  49.            )
  50.            (setq num (+ (atoi num) 1))
  51.            (setq num (itoa num))
  52.           )
  53.           ((and        (= (strlen num) 1)        ;A~Z
  54.                 (>= num_ascii 65)
  55.                 (<= num_ascii 90)
  56.            )
  57.            (progn
  58.              (setq num_ascii (+ num_ascii 1))
  59.              (if (= num_ascii 91)
  60.                (setq num_ascii 65)
  61.              )
  62.              (setq num (chr num_ascii))
  63.            )
  64.           )
  65.         )
  66.       )
  67.     )
  68.   )
  69.   (setvar "BLIPMODE" 0)
  70.   (setvar "osmode" o_os)
  71.   (setvar "cmdecho" 1)
  72.   (princ)
  73. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-6 18:03:42 | 显示全部楼层
出图比例不一样,圆圈大小就不一样,1:100圆圈是1400,所以圆圈大小要可以自选.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-6 18:26:09 | 显示全部楼层
1, 该程序没有考虑比例问题,若考虑,只需加入获取比例因子然后相应修改圆圈大小和文字高度即可;
2, 更好的方法就是设置对话框,分别要求输入圆圈半径和文字高度和比例因子即可;用DCL简单加几句就可以了;
3, 若再加入一些命令即可实现在绘制时,大样圈可随鼠标的移动而移动,本人使用的方法太笨,就没有贴出来,希望高手指点;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-6 20:53:59 | 显示全部楼层
一般人画图多是1:1,出图用1:100,所以圆圈定为1400就行了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 08:26 , Processed in 0.404233 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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