- 积分
- 788
- 明经币
- 个
- 注册时间
- 2003-2-1
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
一个小程序:对齐文字,有时我们需要对不同区域内的文字排列整齐以下程序对你有帮助。[br]加载后命令行输入dq
(defun C:dq ()
(setq oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq oldblip (getvar "blipmode"))
(setvar "blipmode" 0)
(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)
(setq text (ssget))
(initget "H L")
(setq a (getkword "行对齐(H)/列队齐(L)?"))
(if (= a nil)
(setq a "l"))
(SETQ a (strcase a T)) ;提示用户建立选择集text
(setq n 0) ;设置计数器初始值
(setq pointend0 (getpoint "对齐点:"))
(repeat (sslength text) ;建立循环长度为所选对象的个数
(setq name (ssname text n)) ;获取选择集中第n个对象的图元名
(setq entl (entget name)) ;设置 entl 为最新图元的数据关联表
(setq ct 9) ;设置nth函数参数
;(setq pointstar (nth ct entl)) ;获取文字图元的第9个属性---坐标属性
(setq pointstar (nth ct entl))
(if (= a "l")
(progn
(setq pointentl (list (cadr pointstar) (caddr pointstar)))
;建立其点表,并将其赋值给pointel1
(setq pointend (list (car pointend0) (caddr pointstar)))
;设置对齐点的坐标
)
(progn
(setq pointentl (list (cadr pointstar) (caddr pointstar)))
;建立其点表,并将其赋值给pointel1
(setq pointend (list (cadr pointstar) (cadr pointend0)))
;设置对齐点的坐标
)
)
(command "move" name "" pointentl pointend)
;)
(setq n (1+ n))
)
(setvar "cmdecho" oldcmd)
(setvar "blipmode" oldblip)
(setvar "osmode" oldsnap)
(princ) ;静默退出
) |
|