找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 871|回复: 8

[测试]:一个标网格线坐标的程序。

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-8-17 23:22:28 | 显示全部楼层 |阅读模式

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

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

×

  1. ;|
  2. 一个标网格线交点的程序,用于CAD2002  + 晓东工具箱,请在WCS下使用
  3. |;
  4. ($xdrx_load "xdlsp.lsp")
  5. (if (not $xdtb_globle_scale)
  6.   (setq $xdtb_globle_scale 1.)
  7. )
  8. (defun c:xdtb_dmwg (/ ss pts e)
  9.   (if (setq e (xdrx_entsel "\n拾取网格线实体: "))
  10.     (progn
  11.       (xdrx_begin)
  12.       (xdrx_sysvar_push "osmode" "textstyle" "dimzin")
  13.       (setvar "osmode" 0)
  14.       (setvar "dimzin" 0)
  15.       ($xdlsp_checkfont)
  16.       (setvar "textstyle" "xdtb_efont")
  17.       (xdrx_setenttodb (car e))
  18.       (princ "\拾取标注范围(回车全标)....")
  19.       (if (not
  20.             (setq ss
  21.                    (ssget (list '(0 . "*line") (cons 8 (xdrx_getentdxf 8))))
  22.             )
  23.           )
  24.         (setq ss
  25.                (ssget "x"
  26.                       (list '(0 . "*line") (cons 8 (xdrx_getentdxf 8)))
  27.                )
  28.         )
  29.       )
  30.       (setq pts (xdrx_getinters ss 0))
  31.       (mapcar '(lambda (x / $x $y $px $py)
  32.                  (setq $x  (rtos (cadr x) 2 0)
  33.                        $y  (rtos (car x) 2 0)
  34.                        $px (polar x (* 0.75 pi) (* 2 $xdtb_globle_scale))
  35.                        $py (polar x (* 0.25 pi) (* 2 $xdtb_globle_scale))
  36.                  )
  37.                  (vl-cmdf ".text"
  38.                           "j"
  39.                           "br"
  40.                           $px
  41.                           (* 3. $xdtb_globle_scale)
  42.                           "0"
  43.                           $x
  44.                  )
  45.                  (vl-cmdf ".text"
  46.                           "j"
  47.                           "tl"
  48.                           $py
  49.                           (* 3. $xdtb_globle_scale)
  50.                           "90"
  51.                           $y
  52.                  )
  53.                )
  54.               pts
  55.       )
  56.       (xdrx_sysvar_pop)
  57.       (xdrx_end)
  58.       (princ)
  59.     )
  60.   )
  61. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-8-18 10:16:46 | 显示全部楼层
谢谢老大,很需要这个东西啊。只是程序总要自带一个字体进来,有点讨厌,为什么不能用当前字体呢?不过已经很喜欢了啊,再谢谢你的工作!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-24 18:01:03 | 显示全部楼层
有演示吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-25 01:54:00 | 显示全部楼层
用了一下感觉不错,但有个问题,没有比例的设置,文字不能大小不能随比例变化,在1代表1米的图纸中,文字还看得清楚,在1000代表1米的图纸中,标注文字就太小了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2003-8-25 07:56:36 | 显示全部楼层
最初由 寒梅 发布
[B]用了一下感觉不错,但有个问题,没有比例的设置,文字不能大小不能随比例变化,在1代表1米的图纸中,文字还看得清楚,在1000代表1米的图纸中,标注文字就太小了 [/B]

1000下这样控制 运行程序前输入 (setq $xdtb_globle_scale 1000.) 其他比例类推
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-1-7 16:29:49 | 显示全部楼层
推荐:仓心圆也有个程序。网址:
http://fgold.8u8.com/lisp/lisp/fgzhuji/fgzhuji.htm
欢迎大家去看看!
-----------------------------好东西当然大家分享

;;;方格网注记
(defun c:fgzhuji()
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (graphscr)
  (setq bili nil)
  (initget (+ 2 4))
  (setq bili (getreal "\n比例尺1:[1000]"))
  (if (= bili nil) (setq bili 1000.0))
  (setq sc (/ 1000 bili))
  (while (> sc 0)
   (setq pt (getpoint "\n请于方格网'十'附近指定注记点:"))
   (setq x (car pt) y (cadr pt))
   (setq a (* (fix (/ x (/ 100 sc))) (/ 100 sc)))
   (if (< x 0) (setq b (- a (/ 100 sc))) (setq b (+ a (/ 100 sc))))
   (if (< (abs (- x a)) (abs (- b x))) (setq x0 a) (setq x0 b))
   (setq a (* (fix (/ y (/ 100 sc))) (/ 100 sc)))
   (if (< y 0) (setq b (- a (/ 100 sc))) (setq b (+ a (/ 100 sc))))
   (if (< (abs (- y a)) (abs (- b y))) (setq y0 a) (setq y0 b))
   (setq x1 (+ x0 (/ 7 sc)))
   (setq y1 (- y0 (/ 1.25 sc)))
   (setq x2 x0)
   (setq y2 (- y0 (/ 8.25 sc)))
   (setq pt1 (list x1 y1))
   (setq pt2 (list x2 y2))
   (setq texthigh (/ 2.5 sc))
   (setq strx0 (rtos x0 2 0))
   (setq stry0 (rtos y0 2 0))
   (command "layer" "m" "fgw" "")
   (command "text" pt1 texthigh "" stry0)
   (command "text" pt2 texthigh "" strx0)
  )
  (setvar "cmdecho" 1)
  (princ)
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-1-7 21:13:30 | 显示全部楼层
好程序,谢谢楼主!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-1-7 21:28:26 | 显示全部楼层
myfreemind :
         不用谢我,希望你能继续完善发给我的“文本格式的一组坐标点调入AutoCAD”程序,
并把调入文件的具体格式告诉我。
      谢谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-1-7 21:34:29 | 显示全部楼层
调入文件的格式就是你说的那种格式!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 03:51 , Processed in 0.188169 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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