Hello again,
I need something to convert all 3dSolids, regions, surfaces and bodies within a drawing to something, that actually holds dxf information, faces for example.
Until now I did that by walking through the entire modelspace and subentities within inserts, converting every single one of them with a copy paste method:
(defun getSATLst
(inLst movX movY movZ
/ entTyp entity movVec vX vY vZ
) ((=(getvar '_VERNUM
) "13.1.8 (UNICODE)") (setvar 'clipboardformat
19)) ((=(getvar '_VERNUM
) "13.2.4 (UNICODE)") (setvar 'clipboardformat
22)) )
(command "_.copybase" "_non" '
(0.0 0.0 0.0) SATName
"" "_.pasteclip" "_non" (list movX movY movZ
)) ))
)
((= "INSERT" entTyp)
)
(getSATLst
(Blk_ENameLstNstd
(cdr(assoc 2 entity
))) vX vY vZ
) )
)
)
)
You might notice it's a: inefficient, because it has to walk through every insert in the model space
b: very slow, when you have a lot of entities within the model space
c: depending on which version of BricsCAD is used.
Since this is going to be part of a software, which is going to be sold to customers, I have to fix at least c and b.
I could easiely read out the information in groopcodes 1, 2 and 3, yet the other side of the interface this is for can't handle whats inside there.
The best possible solution would work within the actual blocks and on entities in the modelspace, run fast and doesn't require the copy paste method I used so far.
Thanks for the help!