本帖最后由 77077 于 2016-4-14 10:37 编辑
不是没画图,只不过专业不同,很少或不会用到你这个程序,再说了,你原先是设置为收费的,没必要什么都收费吧,小东西嘛改送就送了。
今天才看到你的代码,顺便帮你调整了一下代码:
1.增加程序判断,选不到填充就退出。
2.增加捕捉的储存与还原。
3.增加即时显示。
顺便问下,如果遇到多义线里面含有圆弧,你打算怎么办?- ;;---------继承填充------------------------------------------------------------
- (defun c:jctc (/ os a pt0 pt1 lis lis1 ent tcm tcb tcj)
- (princ "继承填充")
- (setq os (getvar "OSMODE"));储存当前捕捉
- (if (and (setq ent (entget(car(entsel "\n选择点选一个填充图案<退出>:"))))
- (= (strcase(cdr (assoc 0 ent))) "HATCH")
- );选择到物体且物体是个填充时继续,否则退出
- (progn
- (setvar "OSMODE" 4327)
- (setq tcm (cdr (assoc 2 ent))
- tcb (cdr (assoc 41 ent))
- tcj (cdr (assoc 52 ent))
- tcj (/ (* 180 tcj) pi)
- )
- (setq pt1 (getpoint "\n请给出围区第一点:?"))
- (command "PLINE" pt1 "W" 0 0)
- ;预览显示围合范围
- (while (setq pt1 (getpoint pt1 "\n请逐点给出围区下面各点:?"))
- (command pt1)
- )
- (command "c" "")
- (setq a (entlast))
- (command "HATCH" tcm tcb tcj a "")
- (entdel a)
- (setvar "OSMODE" os);还原捕捉
- )
- )
- (princ)
- )
|