pmxcad 发表于 2022-7-5 15:34:24

获取错误:无函数定义

你好
我用李的Lisp程序做了一个包围盒。但它给出了一个错误。
错误:没有函数定义:LM:SSBOUNDINGBOX。
 
 


(defun c:test ( / box obj sel spc )
;(setq all (ssget "_W" '(0 0) '(1000 1000)))
;(setq all (ssget "_x" '((410 . "Model"))))
;    (if (and (setq sel (ssget "P"))
   (if (and (setq sel (ssget))
            (setq box (LM:ssboundingbox sel))
       )
       (progn
         (setq spc
               (vlax-get-property (vla-get-activedocument (vlax-get-acad-object))
                   (if (= 1 (getvar 'cvport))
                     'paperspace
                     'modelspace
                   )
               )
         )
         (if (equal 0.0 (apply '- (mapcar 'caddr box)) 1e-6)
               (progn
                   (setq obj
                     (vlax-invoke spc 'addlightweightpolyline
                           (apply 'append
                               (mapcar '(lambda ( x ) (mapcar '(lambda ( y ) ((eval y) box)) x))
                                  '(
                                       (caar   cadar)
                                       (caadrcadar)
                                       (caadr cadadr)
                                       (caarcadadr)
                                 )
                               )
                           )
                     )
                   )
                   (vla-put-closed obj :vlax-true)
                   (vla-put-elevation obj (caddar box))
               )
               (apply 'vlax-invoke
                   (vl-list* spc 'addbox
                     (apply 'mapcar (cons '(lambda ( a b ) (/ (+ a b) 2.0)) box))
                     (apply 'mapcar (cons '- (reverse box)))
                   )
               )

         )
       )
   )
   (princ)
)
(vl-load-com) (princ)


 
 
我想使用此lisp获得模型空间中所有对象的尺寸(高度和宽度),例如最大化显示。
这是为了稍后自动选择纸张格式/框架并将其插入。
我在网上查过是否有一个lisp可以得到尺寸,但没有找到。所以我开始做一个选择/边界框。
 
那么,有人知道这个错误来自哪里吗?
 
提前谢谢。
 
PmxCAD

rlx 发表于 2022-7-5 16:04:08

你好,pmccad,你的代码看起来坏了。德方是关闭后的权利。。。sel)))。李的函数是先加载的吗?
 
无论如何,上周编写了一个应用程序,可以在不打开图形的情况下从图形中获取范围(odbx)
 
也许它对你有用。
 
gr.Rlx

pmxcad 发表于 2022-7-5 16:11:14

你好,RLX,
是的,对,首先从李那里加载另一个例程。再次生效。
但是回到你的日常生活,日常生活是如何唤醒的,拖入绘画?。我看不到任何(defun c:……我可以从某个地方的变量中得到尺寸吗?(高度-长度)
 
PmxCAD

rlx 发表于 2022-7-5 16:20:37

您必须加载它(显然),然后键入(Odbx\u extenses),即使用“de haakjes”
 
然后,您必须选择一个图形(在测试中,我在getfield命令中使用了“c:/temp/”,但您可以使用任何其他开始文件夹或仅使用“”)
 
它会处理绘图,不要选择非常大的绘图,我写它是为了得到符号或标题栏的大小。完成后,它将返回一个大小类似于extmin/extmax的列表。
 
类似于“(-567500.0-22.4588-1.0e-05)(605.054 1.1125e+06 0.1))
 
这就是为什么我没有在命令中使用c:。
 
gr.Rlx

BIGAL 发表于 2022-7-5 16:37:26

我最简单的方法是检查以这种方式加载的另一个程序是否只需要代码中的一行,而不是复制整个defun等等。
 
2
页: [1]
查看完整版本: 获取错误:无函数定义