晴空O_o 发表于 2021-1-9 21:08:48

请问关于Grread用法及方式

论坛搜索的没看懂,大致理解了grread的原理
(grread ]) 我想请问 teack 和curtype 如何定义?
没太看懂用法我想写一个动态输入文字的代码刚接触grread,请赐教创建文字代码如下
(defun emtxt (pt2 str2 /)
    (entmake (list
             '(0 . "TEXT")
             '(100 . "AcDbEntity")
             '(8 . "0")
             '(100 . "AcDbText")
             '(7 . "tssd_rein")
             '(41 . 0.7)
             (cons 1 str2)
             (cons 10 pt2)
             (cons 40 3000)))
)

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

edata 发表于 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 显示对象选择光标。

edata 发表于 2021-1-11 11:00:46

(defun emtxt (pt2 str2 /)
    (entmakex (list
               '(0 . "TEXT")
               '(100 . "AcDbEntity")
               '(8 . "0")
               '(100 . "AcDbText")
               ;'(7 . "tssd_rein")
               '(41 . 0.7)
               (cons 1 str2)
               (cons 10 pt2)
               (cons 40 3000)))
)
(defun c:tt(/ pt str en elist loop gr code data)
(setq pt '(0 0 0))
(setq str "文字")
(setq en(emtxt pt str))
(if en
    (progn
      (setq elist(entget en))
      (setq txtbox(textbox elist))
      (setq cen(mapcar '(lambda(x y)(* 0.5 (+ x y)))(car txtbox)(cadr txtbox)))
      (setq loop t)
      (while loop
        (setq gr(grread t 15 0))
        (setq code(car gr))
        (setq data(cadr gr))
        (cond
          ((= code 5)(setq pt(mapcar '- data cen)) (entmod(subst(cons 10 pt)(assoc 10 elist)elist)))
          ((= code 3)(setq loop nil) )
          ((= code 11)(setq loop nil) )
          ((= code 25)(setq loop nil) )
          )
        )
      )
    )
)

tigcat 发表于 2021-1-11 12:39:23

E大就是热心

晴空O_o 发表于 2021-1-18 17:36:19

谢谢长老赐教
页: [1]
查看完整版本: 请问关于Grread用法及方式