乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 87|回复: 0

[编程交流] 查询字典。带l的com

[复制链接]

11

主题

98

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 08:48:07 | 显示全部楼层 |阅读模式
大家好,
 
我继续努力使Autocad成为一个通用界面,我写了一本小词典。com阅读器,我想我会和社区分享。
 
  1. ;Dict
  2. ;    Return the definitions for a given word.
  3. (vl-load-com)
  4. (defun c:dict( / query url xmlDoc pos posId posItem defs defId def )
  5.    (princ "\n====== Online Dictionary reader ======")
  6.    (setq query (getstring "\nEnter your query:"))
  7.    (setq url (strcat"http://api-pub.dictionary.com/v001?vid=hqcw8ni3fld8ui0nxyoy6sbzxsub7gnp7zlfn4j3pw&type=define&q=" query))
  8.    (if(and         
  9.             (setq xmlDoc (vlax-create-object "MSXML.DOMDocument"))
  10.             (not (vlax-put xmlDoc 'async 0))
  11.             (= (vlax-invoke xmlDoc 'load url ) -1)
  12.             (= 4 (vlax-get xmlDoc 'readyState)))
  13.        (progn
  14.            (setq pos (vlax-invoke-method xmlDoc 'getElementsByTagName "partofspeech"))
  15.            (if(> (vlax-get pos 'length) 0)
  16.                (progn
  17.                    (setq posId -1)
  18.                    (while (< (setq posId(1+ posId))  (vlax-get pos 'length))
  19.                        (setq posItem (vlax-get-property pos 'Item posId))
  20.                        (princ (strcat "\n------\nPart of speech:    " (vlax-get (vlax-invoke-method (vlax-get-property posItem 'attributes) 'getNamedItem "pos") 'value)))
  21.                        (setq defs (vlax-invoke-method posItem 'getElementsByTagName "def"))
  22.                        (if(> (vlax-get defs 'length) 0)
  23.                            (progn
  24.                                (setq defId -1)
  25.                                (while(< (setq defId(1+ defId)) (vlax-get defs 'length))
  26.                                    (setq def (vlax-get-property defs 'Item defId))
  27.                                    (princ (strcat "\n" (rtos (1+ defId) 2 0) ": " (vlax-variant-value(vlax-get-property def 'nodeTypedValue))))
  28.                                )
  29.                            )
  30.                        )
  31.                    )
  32.                )
  33.                (princ "\nNo results found")
  34.            )
  35.        )
  36.    )
  37.    (vlax-release-object xmlDoc)
  38.    (princ)
  39. )
注:
url中的vid值不是永久性的,如果有人打算长期使用该值,或者碰巧在将来阅读该值,并且看到acad打印文字到控制台的想法使其充满了fervor api键,可以从字典的网站上获得。
 
编辑:
更新的代码通知用户,他们的查询没有返回结果
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 07:59 , Processed in 0.425471 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表