Roy_043我确实在我的帖子中提到了不同宽度的可能性,并对此进行了检查。
我进一步思考了这一点,然后快速跳转到代码中,我们正在以错误的方式处理它,忘记一个pline矩形,应该使用的是一个1x1大小的块,并在X和Y中缩放,然后很容易添加所有的X,或者使用一个动态块,再次您可以检索所有的X值并将其相加。动态块允许在块中重复图案。
更进一步说,选择两个点,插入多个托盘,因为它们具有最大长度,然后添加最后一个奇数。
好的,我做了一个名为200tray的块,它的大小是200x1,插入并使用属性更改其x比例。做了一些。
十分钟,包括编码。
- (defun AHtray ( / ss len tot)
- (setq tot 0.0)
- (setq ss (ssget (list(cons 0 "INsert"))))
- (repeat (setq x (sslength ss))
- (setq len (vla-get-xscalefactor(vlax-ename->vla-object(ssname ss (setq x (- x 1))))))
- (setq tot (+ tot len))
- )
- (alert (strcat "tray length is " (rtos tot 2 2)))
- (princ)
- )
- (ahtray)
下一步是添加起点最大尺寸等,添加一些错误检查,但没有要比较的dwg或规则。
提醒我下一步做一个表格,有多少全尺寸和所有的奇数,所以你有一个零件清单。啊,是的,我一直在找时间做的另一件事,使用求和块属性。 |