想要代码实现以下功能,我自己尝试写了一下,无法运行,请高手帮助修正代码,谢谢!
1、运行命令后,点选某单行文本
2、之后点选两个对角点
3、将单行文本复制(此功能在我写的代码中没有)
4、将复制的单行文本的对齐方式变为正中对齐,并将对齐点设为第2步中选择的两个点的中点
以下为我写的粗糙不能运行的代码,希望可以节省一点高手的时间
 - (defun c:ct ()
- (princ "\n select text")
- (setq ss (ssget ":S" '((0 . "TEXT"))))
- (setq pt1 (getpoint "\n选择对齐对角线的第一个点:"))
- (setq pt2 (getpoint "\n选择对齐对角线的第二个点:"))
- (setq pt3 (polar pt1 (angle pt1 pt2) (* 0.5 (distance pt1 pt2))))
- ;----------------------------------------------------------------------
- (setq old_align (assoc 72 ss))
- (setq new_align (cons 72 1))
- (setq ssdata (subst new_align old_align ss))
- (entmod ssdata)
- ;----------------------------------------------------------------------
- (setq old_align2 (assoc 73 ss))
- (setq new_align2 (cons 73 2))
- (setq ssdata (subst new_align2 old_align2 ss))
- (entmod ssdata)
- ;----------------------------------------------------------------------
- (setq old_pt (assoc 10 ss))
- (setq new_pt (cons 10 pt3))
- (setq ssdata (subst new_pt old_pt ss))
- (entmod ssdata)
- )
|