明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3766|回复: 12

[函数] 完善坐标标注程序--关于预览的问题(已解决)

  [复制链接]
发表于 2011-7-8 04:17 | 显示全部楼层 |阅读模式
本帖最后由 4041186888 于 2011-7-8 21:37 编辑

我写了一个坐标做标注的程序,选择一个多段线任意一点,标注出X,Y,转角,里程等数据,效果如下图

可是使用的时候,只能做到先选择多段线一点,再选取标注位置(如下图),然后才生成上图,这样程序就很不直观,很粗糙~

怎样才能达到下图效果呢,先选取多段线一点,然后选标注位置的时候会跟踪一条直线(就想画直线的命令一样)
最最最最好还能在椭圆处能预览生成的标注,跟随移动的鼠标一起预览,这样程序就漂亮多了,
使用的时候即使很复杂的图面,也可以看出来标注在哪里最舒服了,请问各位高手如何实现啊?

我把我的程序简化如下,请问如何修改,或各位大侠提示下思路~~小弟谢谢了
(defun bz ()
  (setq a (getpoint))
  (setq b (getpoint))
  (command "line" a b)
  (command "text" "ML" b 2 0 (rtos (car a) 2 2) )
)

本帖子中包含更多资源

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

x
发表于 2011-7-8 09:21 | 显示全部楼层
发个程序给你参考一下吧,这个事关于标高标注的。

本帖子中包含更多资源

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

x
 楼主| 发表于 2011-7-8 12:51 | 显示全部楼层
回复 zhynt 的帖子

十分感谢,无奈小弟学习LISP刚刚3个月。。。 。。。你的程序好多地方都看不懂呃。。。
请问大侠能不能直接给点提示之类的 只要能起到预览的作用就行
发表于 2011-7-8 12:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-7-8 15:48 | 显示全部楼层
回复 4041186888 的帖子

一个简单的例子

  1. (defun C:yl (/ id pt1 pt2 txt_ss txt_ent)
  2.   (SETQ ID T)
  3.   (setq pt1 (getpoint "\n点取一点:"))
  4.   (command "_.TEXT"
  5.            "j"
  6.            "bl"
  7.            PT1
  8.            300.0
  9.            0
  10.            (strcat "x=" (rtos (car pt1)) ",y=" (rtos (car pt1))) ;文字
  11.   )
  12.   (setq txt_ss (entlast))                                    ;选取该文字
  13.   (setq txt_ent (entget txt_ss))                            ;取组码
  14.   (while ID
  15.     (SETQ pt2 (GRREAD T 4 0))
  16.     (IF        (= 5 (CAR pt2))                                            ;鼠标跟踪
  17.       (PROGN (REDRAW)                                            ;清屏
  18.              (grdraw (cadr pt2) pt1 1 0)                    ;在屏幕上画一条线,
  19.              (SETQ txt_ent (SUBST (CONS 11 (cadr pt2)) (ASSOC 11 txt_ent) txt_ent)) ;改组码
  20.              (ENTMOD txt_ent)                                    ;改文字位置
  21.              (ENTUPD txt_ss)
  22.       )
  23.     )
  24. ;;;若点击鼠标左、右键或键盘任意按键,则取得当前鼠标位置,并退出循环
  25.     (IF        (OR (= 3 (CAR pt2)) (= 2 (CAR pt2)) (= 11 (CAR pt2)))
  26.       (PROGN (REDRAW)
  27.              (SETQ ID NIL)
  28.              (command "line" pt1 (cadr pt2) "")
  29.       )
  30.     )
  31.   )
  32. )
发表于 2011-7-8 17:45 | 显示全部楼层
好程序,顶起
 楼主| 发表于 2011-7-8 21:34 | 显示全部楼层
回复 zhynt 的帖子

万分的感谢这位大神啊,解决了全部问题,十分谢谢啊 我好好研究研究~
发表于 2011-7-28 21:57 | 显示全部楼层
这个也是我想要达到的效果,下来研究一番。十分感谢
发表于 2011-8-8 18:29 | 显示全部楼层
感兴趣,但是不懂啊
发表于 2011-8-30 09:16 | 显示全部楼层
我想要的是坐标标注全功能的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-18 06:50 , Processed in 0.154164 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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