乐筑天下

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

请各位大大虾帮个忙,将这个LISP程序改写成VBA,不胜感激

[复制链接]

5

主题

28

帖子

5

银币

初来乍到

Rank: 1

铜币
48
发表于 2005-6-20 09:47:00 | 显示全部楼层 |阅读模式
请各位大大虾帮个忙,将这个LISP程序改写成VBA,不胜感激。我的LISP水平太差了。
defun dstbm         ()
         (setq mm (entlast))
         (setq pb (entget mm))
         (regapp "SOUTH")
         (setq
                         xb
                                 (append
                                                 pb
                                                 (list
         (list '-3
                                                         (list "SOUTH" (cons 1000 stbmx))
                                                         )
         )
                                                 )
                         )
         (entmod xb)
         (princ)
         )
;;;批量展测量点
(defun c:zdtxt        (/ l wzcl wzch l3 oldcmd oldblip oldsnap tckz newlayer fle fn pt dm zb xyz h lscale xyz1 xyz2)
         (setq l (getvar "ltscale"))
         (setq wzcl (* l 2))
         (setq wzch (* l 2))
         (setq        l3 (angle (getvar "ucsorg")
                         (getvar "ucsxdir")
                         )
        )
         (setq oldcmd (getvar "cmdecho"))
         (setvar "cmdecho" 0)
         (setq oldblip (getvar "blipmode"))
         (setvar "blipmode" 0)
         (setq oldsnap (getvar "osmode"))
         (setvar "osmode" 0)
         (setvar "angdir" 1)
         (setq        fle (getfiled "请选择数据文件"
                                                         "*"
                                                         "txt;dat;*"
                                                         2
                                                         )
        )
         (if (= (tblobjname "layer" "GCD") nil)
                                                 (progn
         (command "layer" "n" "zd" "C" "1" "GCD"        "")
                                                 )
                                 )
         (setq fn (open fle "r"))
         (read-line fn)
         (setq n 0)
         (while (setq pt (read-line fn))
                         (setq dm (vl-princ-to-string (read pt)))
                         (setq zb (substr pt (+ (strlen dm) 1)))
                         (setq
                                         xyz (trans (read (strcat "(" zb ")"))
                 1
                 0
                 )
                                         )
                         (setq h (rtos (last xyz) 2 1))
                         (setq lscale (* l 1))
                         (entmake
                                         (list (cons 0 "INSERT")
                                 (cons 100 "AcDbEntity")
                                 (cons 8 "GCD")
                                 (cons 100 "AcDbBlockReference")
                                 (cons 10 xyz)
                                 (cons 41 lscale)
                                 (cons 42 lscale)
                                 (cons 43 lscale)
                                 (cons 410 "model")
                                 (cons 2 "gc200")
                                 )
                                         ) ;"gc200"为块名
                         (setq stbmx (itoa 202101))
                         (dstbm)
                         (setq xyz1
                         (polar xyz (/ pi 2) (* l 2))
                 )
                         (setq xyz2
                         (polar xyz (* (/ pi 2) 3) (* l 2))
                 )
                         (entmake (list (cons 0 "Text")
                                 (cons 100 "AcDbEntity")
                                 (cons 8 "GCD")
                                 (cons 100 "AcDbText")
                                 (cons 7 "standard")
                                 (cons 1 dm)
                                 (cons 40 wzcl)
                                 (cons 41 0.8)
                                 (cons 410 "model")
                                 (cons 71 0)
                                 (cons 72 4)
                                 (cons 73 0)
                                 (cons 10 xyz1)
                                 (cons 11 xyz1)
                                 )
                                         )
                         (setq stbmx (itoa 202111))
                         (dstbm)
                         (entmake (list (cons 0 "Text")
                                 (cons 100 "AcDbEntity")
                                 (cons 8 "GCD")
                                 (cons 100 "AcDbText")
                                 (cons 7 "hz")
                                 (cons 1 h)
                                 (cons 40 wzch)
                                 (cons 41 0.8)
                                 (cons 410 "model")
                                 (cons 71 0)
                                 (cons 72 4)
                                 (cons 73 0)
                                 (cons 10 xyz2)
                                 (cons 11 xyz2)
                                 )
                                         )
                         (setq stbmx (itoa 202111))
                         (dstbm)
                         (setq n (+ n 1))
                         )
         (if (= pt nil)
                         (progn
                                         (alert (strcat "*--*展点结束,共展"
                                                 (itoa n)
                                                 "个点*--*!。"
                                                 )
                                         )
                                         (setvar "cmdecho" oldcmd)
                                         (setvar "blipmode" oldblip)
                                         (setvar "osmode" oldsnap)
                                         (setvar "angdir" 1)
                                         (setvar "clayer" "0")
                                         )
                         )
         (close fn)
         (command "zoom" "E")
         (princ)
         )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 01:05 , Processed in 1.127865 second(s), 54 queries .

© 2020-2025 乐筑天下

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