kucha007 发表于 2022-11-19 19:44:40

酷酷提 发表于 2022-11-19 16:33
【【BB】快速建块,并移至0图层.lsp】
是我用过最符合批量建块操作逻辑的插件了
只是感觉命名规则有点乱 ...

块名主要是考虑两个因素:
01-批量建块的时候块名是啥不重要了,只要块名唯一就行了,这也是为了避免跨文件建块产生同名块:lol。使用日期只是因为这个容易得到,而且够唯一,如果这样都有重名块,就加序号后缀。
02-名字不想太长,CAD的对话框也看不全...所以把部分时间变为字母,模拟CAD建匿名块的方式。

aws 发表于 2023-1-2 00:13:50


[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif(defun K:GetCenter (ss / i obj llp urp ls1 ls2)

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif    (repeat (setq i (sslength ss))

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif      (setq obj (vlax-ename->vla-object (ssname ss (setq i (1- i)))))

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif      (if (and (vlax-method-applicable-p obj 'getboundingbox)

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif               (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'llp 'urp))))

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif            )

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif            (setq ls1 (mapcar 'min (vlax-safearray->list llp) (cond (ls1) ((vlax-safearray->list llp))))

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif                  ls2 (mapcar 'max (vlax-safearray->list urp) (cond (ls2) ((vlax-safearray->list urp))))

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif            )

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif      )

[*]http://bbs.mjtd.com/source/plugin/imc_colorcode/images/jssc_none.gif    );获取对象最大矩形边界框左下角和右上角的WCS坐标

   
   你好,如果代码只看到这里,这段代码输出的是啥呢?两个点吗?我想生成一个外框矩形,该如何写呢?
   我用(command "RECTANG" ls1 ls2) 生成不出一个矩形。

kucha007 发表于 2023-1-4 09:33:55

aws 发表于 2023-1-2 00:13
[*](defun K:GetCenter (ss / i obj llp urp ls1 ls2)

[*]    (repeat (setq i (sslength ss))


斜杆后面的变量被清掉了,你在外面调用当然不行了

aws 发表于 2023-1-4 09:57:43

kucha007 发表于 2023-1-4 09:33
斜杆后面的变量被清掉了,你在外面调用当然不行了

你好,我意思呢,是想提取左下角和右上角的两个坐标点,所以就把后面半截省略了,但是代码跑不起来,不知道哪里出了问题

kucha007 发表于 2023-1-4 11:13:08

aws 发表于 2023-1-4 09:57
你好,我意思呢,是想提取左下角和右上角的两个坐标点,所以就把后面半截省略了,但是代码跑不起来,不知 ...


把斜杆后面的lst1和lst2删掉不就行了?

(defun K:GetCenter (ss / i obj llp urp)
    (repeat (setq i (sslength ss))
      (setq obj (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
      (if (and (vlax-method-applicable-p obj 'getboundingbox)
                (not (vl-catch-all-error-p
                        (vl-catch-all-apply 'vla-getboundingbox (list obj 'llp 'urp)))
                )
            )
            (setq ls1 (mapcar 'min (vlax-safearray->list llp) (cond (ls1) ((vlax-safearray->list llp))))
                  ls2 (mapcar 'max (vlax-safearray->list urp) (cond (ls2) ((vlax-safearray->list urp))))
            )
      )
    );获取对象最大矩形边界框左下角和右上角的WCS坐标
)


aws 发表于 2023-1-4 11:39:31

kucha007 发表于 2023-1-4 11:13
把斜杆后面的lst1和lst2删掉不就行了?

天哪,原来是这样,我一直以为那个括号里面的参数,变量,只是起到一个注释的作用。没想到,它在实际影响代码。我全删了,之后就正常了


[*](defun c:ff ()
[*](setq ss(ssget))
[*](repeat (setq n (sslength ss))
[*]    (setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))))
[*]    (if (and (vlax-method-applicable-p obj 'getboundingbox)
[*]          (not (vl-catch-all-error-p
[*]               (vl-catch-all-apply 'vla-getboundingbox (list obj 'llp 'urp)))
[*]          )
[*]      )
[*]      (setq ls1 (mapcar 'min (vlax-safearray->list llp) (cond (ls1) ((vlax-safearray->list llp))))
[*]      ls2 (mapcar 'max (vlax-safearray->list urp) (cond (ls2) ((vlax-safearray->list urp))))
[*]      )
[*]    )
[*]);获取对象最大矩形边界框左下角和右上角的WCS坐标
[*](command "RECTANG" ls1 ls2)
[*](princ)
[*])

kucha007 发表于 2023-1-4 11:47:02

本帖最后由 kucha007 于 2023-1-4 11:49 编辑

aws 发表于 2023-1-4 09:57
你好,我意思呢,是想提取左下角和右上角的两个坐标点,所以就把后面半截省略了,但是代码跑不起来,不知 ...
嗯嗯,是的。斜杆后面的变量执行后会清掉

LUX1125 发表于 2023-2-8 20:57:16

能在块里面快速建块吗?

kucha007 发表于 2023-2-9 00:11:36

LUX1125 发表于 2023-2-8 20:57
能在块里面快速建块吗?

块编辑器里面不能用block命令建块。建议你用粘贴为块

sandyvs 发表于 2023-4-13 21:16:18

选择集中心是有什么限制吗?刚开始用好好地,后来不知道怎么回事,位置不对了。然后又换了个别的选择集中心的函数,正常了。。
页: 1 [2] 3 4 5
查看完整版本: 【BB】快速建块_v1.6/最小外接矩形/选择集中心