明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1052|回复: 4

[讨论] 哪位大哥能恢复一下此源码,提示语法错误

[复制链接]
发表于 2022-12-9 14:04:41 | 显示全部楼层 |阅读模式
下面的代码来自论坛ID296715530,直接复制无法运行,大佬能搞一下咩,能否顺便加上默认偏移距离为1000,可交互输入,外框图层指定到 “外框”,不可打印,颜色为6号色

(defun c:wk (/ ss i l1 l2 ll ur os d)
  (defun *MYERR* (MSG)
(setvar "CMDECHO" CMD_OLD)
(setvar "OSMODE" OS_OLD)
(setq *ERROR* *OLDERR*)
(if (= MSG "完美退出。谢谢使用。")
     (princ (strcat "\\n>>>" MSG))
     (princ "\n>>>虽然中途退出了,对象捕捉已经被恢复。")
)
(princ)
    )
    (setq *OLDERR* *ERROR*
   *ERROR*  *MYERR*
   OS_OLD   (getvar "OSMODE")
   CMD_OLD  (getvar "CMDECHO")
    )
(setvar "CMDECHO" 0);_关闭命令提示
(Setq osmode_bak (getvar "osmode"));_记录捕捉
(Setvar "osmode" 0);_关闭捕捉

(if *Scale* (setq d (getreal (strcat  "\n偏距<" (rtos *Scale* 2 2) ">:") ) )  (setq d (getreal  "\n偏

距:")))
(if (null d) (setq d *Scale*) (setq *Scale*  d ))

(setq ss (ssget))
  (repeat (setq i (sslength ss))
    (vla-getboundingbox
      (vlax-ename->vla-object (ssname ss (setq i (1- i))))
      'll
      'ur
    )
    (setq l1 (cons (vlax-safearray->list ll) l1)
          l2 (cons (vlax-safearray->list ur) l2)
    )
  )
  (mapcar 'set
          (list 'll 'ur)
          (mapcar '(lambda (a b) (apply 'mapcar (cons a b)))
                  '(min max)
                  (list l1 l2)
          )
  )
  (command
    "rectang"
    (trans (polar ll (* pi 1.25) (setq d (sqrt (+ (* d d) (* d d)))))
           0
           1
    )
    (trans (polar ur (* pi 0.25) d) 0 1)
  )

(command "CHPROP" "L" "" "LA" "_3" "");指定图层
(Setvar "osmode" osmode_bak);_还原捕捉


(setvar "CMDECHO" 1);_打开命令提示


  (princ)
)


发表于 2022-12-9 14:45:42 | 显示全部楼层
  1. (defun c:wk(/ ss i l1 l2 ll ur os d)
  2.   (defun *MYERR* (MSG)
  3. (setvar "CMDECHO" CMD_OLD)
  4. (setvar "OSMODE" OS_OLD)
  5. (setq *ERROR* *OLDERR*)
  6. (if (= MSG "完美退出。谢谢使用。")
  7.      (princ (strcat "\\n>>>" MSG))
  8.      (princ "\n>>>虽然中途退出了,对象捕捉已经被恢复。")
  9. )
  10. (princ)
  11.     )
  12.     (setq *OLDERR* *ERROR*
  13.    *ERROR*  *MYERR*
  14.    OS_OLD   (getvar "OSMODE")
  15.    CMD_OLD  (getvar "CMDECHO")
  16.     )
  17. (setvar "CMDECHO" 0);_关闭命令提示
  18. (Setq osmode_bak (getvar "osmode"));_记录捕捉
  19. (Setvar "osmode" 0);_关闭捕捉
  20. (Setq *Scale* 1000)
  21. (if *Scale* (setq d (getreal (strcat  "\n偏距<" (rtos *Scale* 2 2) ">:") ) )  (setq d (getreal  "\n偏

  22. 距:")))
  23. (if (null d) (setq d *Scale*) (setq *Scale*  d ))

  24. (setq ss (ssget))
  25.   (repeat (setq i (sslength ss))
  26.     (vla-getboundingbox
  27.       (vlax-ename->vla-object (ssname ss (setq i (1- i))))
  28.       'll
  29.       'ur
  30.     )
  31.     (setq l1 (cons (vlax-safearray->list ll) l1)
  32.           l2 (cons (vlax-safearray->list ur) l2)
  33.     )
  34.   )
  35.   (mapcar 'set
  36.           (list 'll 'ur)
  37.           (mapcar '(lambda (a b) (apply 'mapcar (cons a b)))
  38.                   '(min max)
  39.                   (list l1 l2)
  40.           )
  41.   )
  42.   (command
  43.     "rectang"
  44.     (trans (polar ll (* pi 1.25) (setq d (sqrt (+ (* d d) (* d d)))))
  45.            0
  46.            1
  47.     )
  48.     (trans (polar ur (* pi 0.25) d) 0 1)
  49.   )

  50. (command "CHPROP" "L" "" "LA" "0" "");指定图层
  51. (Setvar "osmode" osmode_bak);_还原捕捉


  52. (setvar "CMDECHO" 1);_打开命令提示


  53.   (princ)
  54. )


回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-12-9 21:51:52 | 显示全部楼层
发表于 2022-12-12 16:09:05 来自手机 | 显示全部楼层
kwok 发表于 2022-12-9 14:45

挺好用,要是大神能加个外形取整就更完美了!
发表于 2022-12-20 08:50:30 | 显示全部楼层
(command "CHPROP" "L" "" "LA" "_3" "");指定图层
改为 (command "CHPROP" "L" "" "LA" "0" "");指定图层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 06:58 , Processed in 0.159271 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表