欢迎使用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)))
- [color=red]"Your-Block-Name"[/color]
- '(("id#1" "date1" "plant" "test" "result") ("id#3" "date3" "plant3" "test3" "result3"))
- '(("id#1" "1" "1") ("id#2" "2" "2") ("id#3" "3" "3"))
- )
|