Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/03/2021 in all areas

  1. Not sure, but hopefully someone may correct me if I am wrong... According to my research, I found that (LM:data->xdata) function should look something like this : (defun LM:data->xdata ( x ) (cond ( (= 'str (type x)) (list (cons (cond ( (handent x) 1005 ) ( (tblsearch "LAYER" x) 1003 ) ( t 1000 )) x)) ) ( (and (= 'list (type x)) (vl-every 'numberp x) (= (length x) 3)) (list (cons 1010 x)) ) ( (= 'real (type x)) (list (cons 1040 x)) ) ( (= 'int (type x)) (list (cons (if (< -32769 x 32768) 1070 1071) x)) ) ( (= 'list (type x)) (append '((1002 . "{")) (apply 'append (mapcar 'LM:data->xdata x)) '((1002 . "}"))) ) ) ) According to DXF manual, DXF codes 1010, 1011, 1012, 1013 should express X value of 3d point, 1020, 1021, 1022, 1023 Y value and 1030, 1031, 1032, 1033 Z value, but I tried to implement this on some entity and ACAD reported - bad DXF group -3... So I had to remove this and put complete 3d point into 1010... Now with this Lee's code, only DXF 1010 and 1040 are processed, but as you may find out like I said there are 1011, 1012, ... , 1040, 1041 and 1042, but I don't know how to use them - they express same type of data, but are related to different things (3d point, displacement, direction, position) (double-precision floating point, distance, scale factor)... Still I think that list that OP provided actually tells about point lists and not just simple numbers - they are lists of 3 consecutive numbers - that must be a point lists IMHO... My expression for (setq lst ... ) after (setq lstn (LM:data->xdata lst)) I hopefully changed to reflect different Lee's sub, but Lee's function was somewhat different - it was correct (you can assign xdata to entity), but can be treated differently... EDIT : You may find this topic interested also : https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/programs-for-xdata/m-p/10441156/highlight/true#M417070
    1 point
×
×
  • Create New...