CAD中电子签字,块中如何插入块?
有没有人搞过CAD中的电子签名啊,就是扫描的文字用sline或sketch描成电子签名然后做成块?我现在想把科里面所有人的名字做成电子签名的块(如手写签字块张三),然后通过一个程序将【手写签字“张三”的块】替换掉现有块中的宋体的名字【张三】,位置就在原宋体字的位置,大小都是先调整好的固定大小,只要找到原文字位置,在块中插入块就可以了,现在要解决两个问题:
[*]如何在预先不打开块的情况下定位需要替换的名字
[*]如何在块中插入块
希望有人能指点一下,谢谢!
试试这个程序,如何?;;;文字替换成图块
(defun C:thqm(/ ent block_name block_scale os ss s1 i pt acad mspace acaddocument)
(vl-load-com)
(setvar "cmdecho" 0)
(princ "文字替换成图块")
(while
(progn
(setq ent (entsel "\n请选择一个图块:"))
(not (if (= ent nil)
nil
(wcmatch (cdr (assoc 0 (entget (car ent)))) "INSERT") ;实体类型必须为大写
)
)
)
(princ"\n未选取任何图块,请重新点选:")
)
(setq block_name (cdr (assoc 2 (entget (car ent)))));获取块名
(initget 6)
(if (not (setq block_scale (getreal "\n指定块插入比例<1.0>")))
(setq block_scale 1.0)
)
(setq os (getvar "osmode"))
(princ "\n请选择要替换的文字:***提示:文字中心为块的插入点***")
(if (setq ss (ssget '((0 . "text"))))
(repeat (setq i (sslength ss))
(setq s1 (ssname ss (setq i (1- i))))
(setq ent (entget s1))
(setq pt (cdr (assoc 10 ent)))
(setq acad (vlax-get-acad-object))
(setq acaddocument (vla-get-activedocument acad))
(setq mspace (vla-get-modelspace acaddocument))
(setvar "osmode" 0)
(vla-insertblock
mspace
(vlax-3d-point pt)
block_name
block_scale
block_scale
block_scale
0
)
(setvar "osmode" os)
(entdel s1) ;_删除原文字
)
)
(princ)
) sf,沙发我来做
页:
[1]