冒个烟圈 发表于 2024-3-7 10:52:50

语法错误

这段改块颜色程序CAD2020加载时提示:错误,语法错误

代码来自菜卷鱼,原帖大家帮我看下这个改图块颜色程序如何完善下! - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - 程序,如何 - Powered by Discuz! (mjtd.com)
自己英文太差搞不定,大佬帮忙看下怎么修改,谢谢!

(defun LM:ApplytoBlockObjects ( blks name func / result )
    (setq func (eval func))
    (if (not (vl-catch-all-error-p (setq def (vl-catch-all-apply 'vla-item (list blks name)))))
      (vlax-for obj def (setq result (cons (func obj) result)))
    )
    (reverse result)
)

(defun c:bco ( / s col)
(if (= ocol nil)(setq ocol 0))
    (princ "\nSelect Block: ")
    (if (setq s (ssget "_+.:E:S" '((0 . "INSERT"))))
(progn
(mapcar 'princ (list "\nNumber of color:[<" ocol ">]"))
(prin1)
      (setq col(getint ))
(if (/= col nil)(setq ocol col)(setq col ocol))
      (LM:ApplytoBlockObjects
            (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
            (vla-get-effectivename (vlax-ename->vla-object (ssname s 0)))
         '(lambda ( obj ) (vla-put-layer obj "0"))      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;图层改为0层
      )
      (LM:ApplytoBlockObjects
            (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
            (vla-get-effectivename (vlax-ename->vla-object (ssname s 0)))
         '(lambda ( obj ) (vla-put-Color obj col))         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;颜色改为Col
      )
      (LM:ApplytoBlockObjects
            (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
            (vla-get-effectivename (vlax-ename->vla-object (ssname s 0)))
         '(lambda ( obj ) (vla-put-LinetypeScale obj (getvar 'dimscale)))         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;顺便改一下线型比例
      )                                                               
)
    )
    (princ)
(entmod(entget(ssname s 0)))(princ)
)
(vl-load-com) (princ)


ssyfeng 发表于 2024-3-7 10:56:57

试试这个:

冒个烟圈 发表于 2024-3-7 13:00:52

ssyfeng 发表于 2024-3-7 10:56
试试这个:

多谢!可以运行了,:handshake

yefei812678 发表于 2024-3-8 08:09:13

感谢分享感谢分享感谢分享感谢分享
页: [1]
查看完整版本: 语法错误