列表列表帮助
我有两个数据列表,每个列表都是不同长度的列表。我在分析和组合列表的部分内容时遇到问题。
我想从阳性测试的数据列表开始{contains id#and attributes for blocks,exe:((“id#1”“date1”“plant”“test”“result”)(“id#3”“date3”“plant3”“test3”“result3”)),
并将块插入到不同列表{contains id#and x,y coordinates exe:((“id#1”“x1”“y1”)(“id#2”“x2”“y2”)(“id#3”“x3”“y3”))的坐标中
我的工厂将2个列表合并为1个列表,删除不在位置测试列表中的id和坐标。与此类似:
(((“x1”“y1”“id#1”“date1”“plant1”“test1”“result1”)(“x3”“y3”“id#3”“date3”“plant3”“test3”“result3”))删除列表的(“id#2”“x2”“x3”)部分。
我知道我想要什么,但不知道如何实现。
我用LeeMac的lm:readcsv从一个csv文件创建列表,但我在尝试正确使用数据时迷失了方向。 欢迎使用CADTutor-我很高兴你发现我的阅读CSV功能很有用!
以下代码完全未经测试,但有望按要求执行:
(defun myinsert ( spc blk lst1 lst2 / dwg ins )
(if (or (tblsearch "block" blk)
(and (setq dwg (findfile (strcat blk ".dwg")))
( (lambda ( / cmd )
(setq cmd (getvar 'cmdecho))
(setvar 'cmdecho 0)
(command "_.-insert" dwg nil)
(setvar 'cmdecho cmd)
(tblsearch "block" blk)
)
)
)
)
(foreach x lst1
(if (and (setq ins (mapcar 'distof (cdr (assoc (car x) lst2))))
(vl-every 'numberp ins)
)
(mapcar 'vla-put-textstring
(vlax-invoke (vla-insertblock spc (vlax-3D-point ins) blk 1 1 1 0) 'getattributes)
(cdr x)
)
)
)
(prompt (strcat "\nBlock \"" blk "\" not found."))
)
(princ)
)调用:
(myinsert
(vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
"Your-Block-Name"
'(("id#1" "date1" "plant" "test" "result") ("id#3" "date3" "plant3" "test3" "result3"))
'(("id#1" "1" "1") ("id#2" "2" "2") ("id#3" "3" "3"))
)
页:
[1]