David_Webb 发表于 2019-5-31 17:33:21

本帖最后由 David_Webb 于 2019-5-31 17:58 编辑

yshf 发表于 2019-5-31 17:27
那上传你的测试图
点击的文本对象是“附注”两个字,然后复制出来的文本飞到了左上角

另外是否可以让代码执行完后就退出,不要再让我选择新的文本对象?



David_Webb 发表于 2019-5-31 17:51:07

点击的文本对象是“附注”两个字,然后复制出来的文本飞到了左上角

另外是否可以在选完第二个点后直接退出,不要再让我选择新的文本对象?

xiang19751218 发表于 2019-5-31 20:29:26

(defun c:t2 ( / ss pt1 pt2 listInsertPoint dxf floatTextHigh strText floatRotateAngle floatScaleFactor strStyleName)
    (setq ss (ssget ":S" '((0 . "TEXT"))))   
       (if (and (setq pt1 (getpoint "\n指定第一个点:"))
                (setq pt2 (getpoint pt1 "\n指定第二个点:"))
         )
         (progn
             (setq listInsertPoint (mapcar '(lambda(a b)(* 0.5 (+ a b))) pt1 pt2))
                (setq dxf (entget (ssname ss 0)))
                (setq floatTextHigh (assoc 40 dxf) )
                (setq strText (assoc 1 dxf) )
                (setq floatRotateAngle (assoc 50 dxf) )
                (setq floatScaleFactor (assoc 41 dxf) )
                (setq strStyleName (assoc 7 dxf) )
            (entmake (list '(0 . "TEXT")
                '(10 0 0 0)
                (cons 11 listInsertPoint)
               floatTextHigh
               strText
                floatRotateAngle
               floatScaleFactor
               strStyleName
                '(72 . 1)
                '(73 . 2)
                '(100 . "AcDbText")
                   )
            )
         )

       );if
(princ)
)

yshf 发表于 2019-5-31 20:49:05

已修改,详见2#楼

David_Webb 发表于 2019-6-3 08:28:24

yshf 发表于 2019-5-31 20:49
已修改,详见2#楼

David_Webb 发表于 2019-6-3 08:34:49

xiang19751218 发表于 2019-5-31 20:29
(defun c:t2 ( / ss pt1 pt2 listInsertPoint dxf floatTextHigh strText floatRotateAngle floatScaleFact ...

感谢回复,不过好像不能用~就用二楼大大的代码就好啦
页: 1 [2]
查看完整版本: 请高手帮助修正单行文本操作的小代码