乐筑天下

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

将Lisp转换为Excel VBA

[复制链接]

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2014-5-15 11:43:42 | 显示全部楼层 |阅读模式
我想知道以下代码如何将其编码到VBA。类似于我们在autocad中将多段线区域返回excel中所做的操作。该命令通过excel宏发送
任何帮助都太棒了
  1. (defun c:zm2st (/ *ACAD* C3D C3DDOC LOCATION NTWRK NTWRKS PROD PRODSTR PT STRC STRCNAME STRUCTURES)
  2. (vl-load-com)
  3. (setq prod (vlax-product-key))
  4. (setq        prodStr        (strcat        "AeccXUiPipe.AeccPipeApplication"
  5.                         (cond ((vl-string-search "\\R17.0\" prod)
  6.                                ".4.0"
  7.                               )
  8.                               ;;2007
  9.                               ((vl-string-search "\\R17.1\" prod)
  10.                                ".5.0"
  11.                               )
  12.                               ;;2008
  13.                               ((vl-string-search "\\R17.2\" prod)
  14.                                ".6.0"
  15.                               )
  16.                               ;;2009
  17.                               ((vl-string-search "\\R18.0\" prod)
  18.                                ".7.0"
  19.                               )
  20.                               ;;2010
  21.                               ((vl-string-search "\\R18.1\" prod)
  22.                                ".8.0"
  23.                               )
  24.                               ;;2011
  25.                               ((vl-string-search "\\R18.2\" prod)
  26.                                ".9.0"
  27.                               )
  28.                               ;;2012
  29.                               ((vl-string-search "\\R19.0\" prod)
  30.                                ".10.0"
  31.                               )
  32.                               ;;2013
  33.                               ((vl-string-search "\\R19.1\" prod)
  34.                                ".10.3"
  35.                               )
  36.                               ;;2014
  37.                               (t "")
  38.                         )
  39.                 )
  40.   )
  41.   (if (and (setq *acad* (vlax-get-acad-object))
  42.            (setq C3D (vla-getinterfaceobject *acad* prodStr))
  43.            (setq C3Ddoc (vla-get-activedocument C3D))
  44.       )
  45.     (progn
  46.       (setq ntwrks (vlax-get c3ddoc 'pipenetworks))
  47.       (setq strcname (getstring "\nStructure name to zoom to: " t))
  48.       (vlax-for ntwrk ntwrks
  49.         (if (not strc)
  50.           (progn
  51.             (vl-catch-all-apply '(lambda ()
  52.             (setq structures (vlax-get ntwrk 'structures))
  53.             (setq strc (vlax-invoke structures 'item strcname))
  54.                                    )
  55.               '())
  56.           )
  57.         )
  58.       )
  59.       (if strc
  60.         (progn
  61.           (setq location (vlax-get strc 'position))
  62.           (setq pt (list (vlax-get location 'x) (vlax-get location 'y)))
  63.          (command "zoom" "c" pt "40")
  64.         )
  65.         (progn
  66.           (princ (strcat "\nStructure "" strcname "" not found."))
  67.         )
  68.       )
  69.     )
  70.   )
  71.   (princ)
  72. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-4-20 18:05 , Processed in 2.048640 second(s), 54 queries .

© 2020-2025 乐筑天下

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