找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 741|回复: 6

[原创]:强力标高标注,欢迎试用及指点![免币]

[复制链接]
发表于 2006-5-13 00:33:03 | 显示全部楼层 |阅读模式

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

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

×
自己写的标高标注程序!欢迎各位大侠试用及指点。以便完善程序!因为有点复杂,读程序比较麻烦,可能浪费各位时间,待大家提出修改意见后,若没有问题就公布源码!

程序中的不足是不能使标注的文字随鼠标动态移动,因为不同的标注形式,文字插入点有一定的跳跃性,试过vla-move方法,可最终无法实施,希望高手能指点一二!

特点:
1.可随意选择标注形式,由鼠标选择。
2.可同时标注多个,文字可以选择标注在同一位置或不同位置。
3.可自由选择标注的基点,及零米位置。
4.可输入不同的测量比例,类似于"DIMLFAC"。
5.可输入不同的绘图比例,类似于"DIMSCALE"。

程序功能肯定不够称得上“强力”,只是希望引起关注,大家来共同完善。望海涵!
谢谢试用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-5-13 00:43:32 | 显示全部楼层
1  标注文字的“实时显示”可以通过Entmod来实现

2  建议选项部分符合 2006 以上的规则,可以用右键来选择选项,或者使用“一触即发”

3 注意最终绘制的线长要根据字符的长短来调整长度
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-13 08:50:47 | 显示全部楼层
eachy斑竹,entmod方法我试试看;可“用右键来选择选项,或者使用“一触即发”"怎么实现,我没有做过,希望指点一下,或给个例子参考一下;“调整长度”再考虑考虑。谢谢指点!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-5-13 08:57:13 | 显示全部楼层
1 右键启用时可以在右键选择关键字,下面是 CAD 标准的命令提示

命令: xx PLINE
指定起点:
当前线宽为 0.0000
指定下一个点或 [圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W)]:
指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W)]:

2 一触即发 是一个老帖子,你使用了 Grread 很容易想到的
http://www.xdcad.net/forum/showt ... 1345503#post1345503

3 调整长度可以到函数库论坛看看有个求字串长度的函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-13 13:08:42 | 显示全部楼层
“用右键来选择选项,或者使用“一触即发”“我不知道怎么实现,下面是取得点的一段代码,请eachy斑竹或其他高手修改指点!

[PHP]
(SETQ BG_ID T)
(SETVAR "OSMODE" (+ 1 2 32 128 512))
(WHILE BG_ID
  (INITGET 128 "O B H D")
  (SETQ BGBL (VLAX-LDATA-GET "BGBL" "BGBL"))
  (IF (NOT BGBL)
    (SETQ BGBL (RTOS (GETVAR "DIMLFAC") 2 2))
  )
  (SETQ HTBL (VLAX-LDATA-GET "BGBL" "HTBL"))
  (IF (NOT HTBL)
    (SETQ HTBL (RTOS (GETVAR "DIMSCALE") 2 2))
  )
  (SETQ BGDOT (VLAX-LDATA-GET "BGDOT" "BGDOT"))
  (IF (NOT BGDOT)
    (SETQ BGDOT "3")
  )
  (PRINC (STRCAT "\n***  当前标准样式测量比例为 [1:"
                 BGBL                          "].绘图比例为 [1:"
                 HTBL                          "]. 小数位数为 "
                 BGDOT                          " 位.  ***"
                )
  )
  (SETQ        BSPOINT
         (GETPOINT
           "\n改标高基点(O)/测量比例(B)/绘图比例(H)/小数位数(D)/或选择标注的起始点:"
         )
  )
  (COND
    ((OR (= BSPOINT "O") (= BSPOINT "o"))
     (SETQ ORGPOINT (GETPOINT "\n选择标注标高的基点[\"±0.00\"点]:"))
     (SETQ OHEIGHTSTR (RTOS (CADR ORGPOINT) 2 3))
     (VLAX-LDATA-PUT "ORGPOINTY" "ORGPOINTY" OHEIGHTSTR)
     (PRINC
       (STRCAT "\n选择的基点[\"±0.00\"点]在当前坐标系中的高度为: "
               OHEIGHTSTR
               " 米."
       )
     )
    )
    ((OR (= BSPOINT "b") (= BSPOINT "B"))
     (SETQ BGBLS (GETREAL (STRCAT "请输入新的标高测量比例<" BGBL ">:")))
     (IF (NOT BGBLS)
       (SETQ BGBLS (ATOF BGBL))
     )
     (VLAX-LDATA-PUT "BGBL" "BGBL" (RTOS BGBLS 2 2))
    )
    ((OR (= BSPOINT "h") (= BSPOINT "H"))
     (SETQ HTBLS (GETREAL (STRCAT "请输入新的标高绘图比例<" HTBL ">:")))
     (IF (NOT HTBLS)
       (SETQ HTBLS (ATOF HTBL))
     )
     (VLAX-LDATA-PUT "BGBL" "HTBL" (RTOS HTBLS 2 2))
    )
    ((OR (= BSPOINT "d") (= BSPOINT "D"))
     (SETQ BGDOTS (GETINT (STRCAT "请输入新的小数位数<" BGDOT ">:")))
     (IF (NOT BGDOTS)
       (SETQ BGDOTS (ATOI BGDOT))
     )
     (VLAX-LDATA-PUT "BGDOT" "BGDOT" (ITOA BGDOTS))
    )
    ((= (TYPE BSPOINT) 'LIST)
     (SETQ BG_ID NIL)
     (IF (NOT (VLAX-LDATA-GET "ORGPOINTY" "ORGPOINTY"))
       (PROGN
         (VLAX-LDATA-PUT
           "ORGPOINTY"
           "ORGPOINTY"
           (RTOS (CADR BSPOINT) 2 3)
         )
       )
     )
    )
    (T (PRINC "\n无效的选择或者输入!请重新确认."))
  )
)
[/PHP]

我看了一下,用grread来“一触即发”功能是在只得到关键字的时候是很好使的,可我不想去掉GETPOINT前面的princ的即时提示功能,因而用grread可能不行。
另外eachy斑竹的实例pline中的右键选择我怎么用不出来。如果我的代码中要实现右键选择,该怎样修改,我实在是黔驴技穷了,希望高手指点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-5-13 22:42:33 | 显示全部楼层
符合右键选择就是增加了一个中括号,前面的是 Title
  1. (setq bspoint
  2.        (getpoint
  3.          "\n请选择[改标高基点(O)/测量比例(B)/绘图比例(H)/小数位数(D)]<起始点>:"
  4.        )
  5. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 00:46 , Processed in 0.372544 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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