找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 982|回复: 2

[LISP程序]:请高手帮我改一下这个尺寸标注程序!

[复制链接]
发表于 2002-11-30 00:10:12 | 显示全部楼层 |阅读模式

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

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

×
ACAD的连续标注在FOREACH命令中不好用,总是错行,没办法,
我编了如下方法来实现连续标注(有些地方是其他用途),但我
我觉得很麻烦,那位老兄可以帮我想个简单的方法?

  1.   [FONT=courier new]
  2. (defun C:member_dim ()
  3.   (setq        n3          0
  4.         girt_list '("4@1800" "2000" "3000" "4000" "varies")
  5.         bp_thn          25
  6.   )
  7.   (setq each_girt (nth n3 girt_list))
  8.   (if (/= nil
  9.           (setq posi (Vl-string-position (ASCII "@") each_girt))
  10.       )
  11.     (progn
  12.       (dim_draw        (setq pre_pt (list (- bp_thn) 0))
  13.                 '(0 0)
  14.       )
  15.       (repeat (atoi (substr each_girt 1 posi))
  16.         (progn
  17.           (dim_draw
  18.             pre_pt
  19.             (list (+ (car pre_pt) (atoi (substr each_girt (+ 2 posi))))
  20.                   0
  21.             ))
  22.           (setq        pre_pt (list (+        (car pre_pt)
  23.                                 (atoi (substr each_girt (+ 2 posi)))
  24.                              )
  25.                              0
  26. )))))))
  27. (defun Dim_draw        (dpt1 dpt2 /)
  28.   (cond        ((= 0 dim_type)
  29.          (vl-cmdf "_dimlinear"
  30.                   dpt1
  31.                   dpt2
  32.                   (strcat "@0," (rtos 1500 2 15))
  33. ))))
  34.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-11-30 03:13:57 | 显示全部楼层

  1. (defun #m_dim (d70 d50 d1 p10 p13 p14 lay color / en000)
  2.   ;d70线性32对齐33; p10基点 p13第一点 p14第二点 d1强制长度值
  3.   ;(#m_dim 32 0 "" p10 p13 p14 "dim" -1)
  4.   ;(#m_dim 32 0 "" '(-3000 30000 0.0) '(-498.081 33511.0 0.0) '(-3198.08 33511.0 0.0) "dim" -1)
  5.   (setq        en000 (list
  6.               (cons 0 "DIMENSION")
  7.               (cons 100 "AcDbEntity")
  8.               (cons 8 lay)
  9.               (cons 100 "AcDbDimension")
  10.               (cons 10 p10)
  11.               '(11 0 0 0)
  12.               (cons 70 d70)
  13.               (cons 1 d1)
  14.               (cons 100 "AcDbAlignedDimension")
  15.               (cons 13 p13)
  16.               (cons 14 p14)
  17.               (cons 50 d50)
  18.             )
  19.   )
  20.   (if (= (logand d70 5)0)
  21.     (setq en000(append en000 (list '(100 . "AcDbRotatedDimension")))))
  22.   (if (/= -1 color) (setq en000 (append en000 (list (cons 62 color)))))
  23.   (if (= nil (entmake en000)) (princ "\n制造 dim 实体失败.")  )
  24. )

  25. (defun cy_dim_pb(pb p0 a)   ;;;点表线性标注
  26.   (setq p1(car pb)pb1(cdr pb)
  27.         in 0)
  28.   (foreach x pb1
  29.     (setq p1(nth in pb)in(1+ in))
  30.     (#m_dim 32 a "" p0 p1 x "dim" -1)
  31.   )
  32. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2002-11-30 21:26:54 | 显示全部楼层
天正的两点标注不是很好吗?
先画出平行线,拉一下就出来了.编一下不会比你的复杂.
你的数字变了,还要重写.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 03:45 , Processed in 0.197623 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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