357785513 发表于 2017-12-13 07:55:52

如何让CAD点那个文字朗读一下

(setq sapi (vlax-create-object "Sapi.SpVoice"))
(vlax-invoke sapi "Speak" "本工程依据抗震规范设计 !" 0)
各位好,有两年时间没有发铁了,有什么办法调用上面的在CAD里点那个文字就朗读一遍
各位有什么好办法不

357785513 发表于 2017-12-13 20:39:43

(defun c:WBLD (/ ss i txt catch)
(defun speek (str)
    (setq spi (vlax-create-object "Sapi.SpVoice"))
    (vlax-method-applicable-p spi "Speak")
    (vlax-invoke-method spi "Speak" str 3)
)
(princ "\n请选择要朗读的文字 : ")
(if (setq ss (ssget '((0 . "*TEXT"))))
    (progn
      (setq i -1)
      (repeat (sslength ss)
        (setq txt (cdr (assoc 1 (entget (ssname ss (setq i (1+ i))))))
              cat (vl-catch-all-apply 'speek (list txt))
        )
        (if (vl-catch-all-error-p cat)
          (progn (princ "\n朗读文字时捕捉到错误 : ")
               (princ (vl-catch-all-error-message cat))
          )
        )
      )
    )
)
(princ)
)

satan421 发表于 2019-5-8 11:44:27

测试可以用,本质是调用VBS的方法。

新建一个txt文档,复制下面一行的内容到文档内:
CreateObject("SAPI.SpVoice").Speak "朗读测试"
保存,关闭文档,将文档后缀的.txt改为.vbs,双击运行就会朗读。

不太熟悉这种用法,不过最后应该释放一下创建的对象吧

1291500406 发表于 2019-5-8 12:14:20

satan421 发表于 2019-5-8 11:44
测试可以用,本质是调用VBS的方法。

新建一个txt文档,复制下面一行的内容到文档内:


调用的SAPI.SpVoice不是vbs

357785513 发表于 2017-12-13 18:46:39

我的铁快垫底了

357785513 发表于 2017-12-13 20:40:09

完了抄不全,不能用呀

langke52 发表于 2017-12-13 22:28:41

居然还可以朗读。长见识了

fan_zh 发表于 2017-12-14 12:27:22

这个厉害了,必须收藏

ssyfeng 发表于 2017-12-16 10:27:44

真的能读嘛,好像不成功。

wosyuwu 发表于 2017-12-24 00:21:46

朗读???第一次听说。还能这样玩啊。。
页: [1] 2
查看完整版本: 如何让CAD点那个文字朗读一下