CAD模拟PS笔刷工具。
这是一个雏形,欢迎大家一起来加强~~~先上图~
上代码(defun c:tt(/ loop strar code)
(prompt "模拟画笔工具:左键开始,左键结束,右键完全退出画笔工具。")
(setq loop t);设定跳出while循环的标志
(setq strar 0);设定画笔不开始
(while loop
(setq code (grread t 8))
(cond
((and (= (car code) 3)(= strar 0)) ;;; 鼠标左键第一次点击,开始画笔
(setq strar 1)
(princ "\n 开始画>>")
);end
((and (= (car code) 3)(= strar 1)) ;;; 鼠标左键第二次点击,结束画笔
(setq strar 0)
(princ " >>结束了。")
);end
((and (= (car code) 5) (= strar 1));;; 画笔开始时,鼠标移动。
(entmake (list '(0 . "POINT") (cons 10 (cadr code))))
);end
((= (car code) 11) ;;; 右键完全退出画笔工具
(setq loop nil)
(princ "\n 你已经退出画笔工具。")
);end
);end cond
)
(princ)
);end defun最后上将来打算做成的样子~~~
加载出现 错误: DXF 组不正确: (10)啥原因 这个不需要插件,这个命令好像能实现:SKETCH ,这个东西好呀,给他们美术的搞绘画用 继续编写中~~~
(defun c:tt(/ loop strar code blkname dis pydis scal0 scal1 pt1 pt2)
(setq blkname (cdr(assoc 2(entget(car(entsel "\n选择图块:"))))))
(or(setq dis (getreal "\n最小间距<1.0>:"))(setq dis 1.0))
(or(setq pydis (getreal "\n两侧散布间距<0>:"))(setq PYdis 0.0))
(or(setq scal0 (getreal "\n大小抖动<0>:"))(setq scal0 0.0))
(prompt "模拟画笔工具:左键开始,左键结束,右键完全退出画笔工具。")
(setq loop t);设定跳出while循环的标志
(setq strar 0);设定画笔不开始
(while loop
(setq code (grread t 8))
(cond
((and (= (car code) 3)(= strar 0)) ;;; 鼠标左键第一次点击,开始画笔
(setq pt1 (cadr code))
(setq strar 1)
(princ "\n 开始画>>")
);end
((and (= (car code) 3)(= strar 1)) ;;; 鼠标左键第二次点击,结束画笔
(setq strar 0)
(princ " >>结束了。")
);end
((and (= (car code) 5) (= strar 1));;; 画笔开始时,鼠标移动。
(setq pt2 (cadr code));基点
(setq pt2 (polar
pt2
(* 2 pi (/ (rem (getvar "CPUTICKS") 1984) 1983));随机偏移角度
(* 2 PYdis (/ (rem (getvar "CPUTICKS") 1984) 1983));随机偏移距离
)
)
(if (> (distance pt1 pt2) dis)
(progn
(if (= scal0 0)
(setq scal1 1)
(setq scal1 (* scal0 (/ (rem (getvar "CPUTICKS") 1984) 1983)));随机大小
)
(entmake (list
'(0 . "INSERT")
(cons 2 blkname)
(cons 10 pt2)
(cons 41 scal1)
(cons 42 scal1)
(cons 43 scal1)
)
)
(setq pt1 pt2)
)
)
);end
((= (car code) 11) ;;; 右键完全退出画笔工具
(setq loop nil)
(princ "\n 你已经退出画笔工具。")
);end
);end cond
)
(princ)
) 生成一个组,后期处理方便 厉害
。。。。。。。。。。。。 功能不错。学习了。
感觉很好玩,支持…… 这个不错,有创意 感觉不错,可以直接签名了 最好设个专用图层或作为组,方便修改
页:
[1]
2