明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2016|回复: 5

[提问] 请问关于Grread用法及方式

[复制链接]
发表于 2021-1-9 21:08:48 | 显示全部楼层 |阅读模式
论坛搜索的没看懂,大致理解了grread的原理
(grread [track] [allkeys [curtype]]) 我想请问 teack 和curtype 如何定义?
没太看懂用法我想写一个动态输入文字的代码刚接触grread,请赐教创建文字代码如下
  1. (defun emtxt (pt2 str2 /)
  2.     (entmake (list
  3.                '(0 . "TEXT")
  4.                '(100 . "AcDbEntity")
  5.                '(8 . "0")
  6.                '(100 . "AcDbText")
  7.                '(7 . "tssd_rein")
  8.                '(41 . 0.7)
  9.                (cons 1 str2)
  10.                (cons 10 pt2)
  11.                (cons 40 3000)))
  12. )

插入文字 如何用grread实现动态?

发表于 2021-1-11 11:00:10 | 显示全部楼层
参数

track

如果提供该参数且其值不为 nil,则输入设备移动时,本函数能从定点设备中返回坐标。

allkeys

整数型,决定 grread 要执行的功能。allkeys 的几个位值相加可以获得组合功能。可以指定如下值:

1 (位0) 返回“拖动模式”坐标。如果设置了该位,而且用户只是移动定点设备而没有按下按钮或键盘,grread 函数就返回一个表,其第一个成员是类型代码 5,第二个成员是当前定点设备(鼠标或数字化仪)的位置坐标 (X,Y),这就是 AutoCAD 实现拖动的方法。

2 (位1) 返回所有的键值,包括功能键和光标键代码,用户按下光标键时并不移动光标。

4 (位2) 使用 curtype 参数传来的值控制光标的显示。

8 (位3) 在用户按下 ESC 键时不显示相应错误信息。

curtype

整数型,表明显示光标的类型。只有当 allkeys 参数的第二位为 1 时 curtype 参数才有效。该参数只控制当前 grread 函数调用时显示的光标类型。可以指定下列 curtype 值:

0 显示普通十字光标。

1 不显示光标(无十字光标)。

2 显示对象选择光标。

点评

学习了,讲的很细  发表于 2021-1-13 23:22
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-11 11:00:46 | 显示全部楼层
  1. (defun emtxt (pt2 str2 /)
  2.     (entmakex (list
  3.                '(0 . "TEXT")
  4.                '(100 . "AcDbEntity")
  5.                '(8 . "0")
  6.                '(100 . "AcDbText")
  7.                ;'(7 . "tssd_rein")
  8.                '(41 . 0.7)
  9.                (cons 1 str2)
  10.                (cons 10 pt2)
  11.                (cons 40 3000)))
  12. )
  13. (defun c:tt(/ pt str en elist loop gr code data)
  14.   (setq pt '(0 0 0))
  15.   (setq str "文字")
  16.   (setq en(emtxt pt str))
  17.   (if en
  18.     (progn
  19.       (setq elist(entget en))
  20.       (setq txtbox(textbox elist))
  21.       (setq cen(mapcar '(lambda(x y)(* 0.5 (+ x y)))(car txtbox)(cadr txtbox)))
  22.       (setq loop t)
  23.       (while loop
  24.         (setq gr(grread t 15 0))
  25.         (setq code(car gr))
  26.         (setq data(cadr gr))
  27.         (cond
  28.           ((= code 5)(setq pt(mapcar '- data cen)) (entmod(subst(cons 10 pt)(assoc 10 elist)elist)))
  29.           ((= code 3)(setq loop nil) )
  30.           ((= code 11)(setq loop nil) )
  31.           ((= code 25)(setq loop nil) )
  32.           )
  33.         )
  34.       )
  35.     )
  36.   )
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-11 12:39:23 | 显示全部楼层
E大就是热心
 楼主| 发表于 2021-1-18 17:36:19 | 显示全部楼层
谢谢长老赐教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-17 06:15 , Processed in 0.164584 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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