Message 1 of 8

Not applicable
03-14-2021
06:08 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi guys,
sorry for my bad english but i am working on this plugin since a week and no way to make it work
autolisp it's not my daily programming language but loving it.
im trying to make a lsp that over a selection will take evrything into each blue bounding poly on a selected layer and make a block
and if some math guru can help me to auto setting up the insertion point could be lovely
my code :
(defun LM:boundingbox ( obj / a b lst )
(if
(and
(vlax-method-applicable-p obj 'getboundingbox)
(not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'a 'b))))
(setq lst (mapcar 'vlax-safearray->list (list a b)))
)
(mapcar '(lambda ( a ) (mapcar '(lambda ( b ) ((eval b) lst)) a))
'(
(caar cadar)
(caadr cadar)
(caadr cadadr)
(caar cadadr)
)
)
)
)
(defun c:Print(/ selectionset insertionpoint number Blockname SS ent)
(progn
(if
(setq ss (ssget "_x" '((0 . "*POLYLINE")) '((8 . "layerprint")) ) )
(repeat (setq i (sslength ss))
(setq ent (ssname ss (setq i (1- i))))
(if
(and
(setq selectionset (ssget "_CP" '((LM:boundingbox (vlax-ename->vla-object ent)))))
(setq insertionpoint (getpoint "\n select insertion point :"))
)
(setq number 1 Blockname (strcat "MyBlock" (itoa number)))
(while (tblsearch "BLOCK" Blockname)
(setq Blockname (strcat "MyBlock" (itoa (setq number (1+ number)))))
)
(command "_.-Block" Blockname insertionpoint selectionset "")
(command "_.-insert" Blockname insertionpoint 1 1 0)
)
(princ)
)
(princ)
)
)
Solved! Go to Solution.