程序能把线打断,但因没有阀门图面可供测试!!!!!!!!!
从错误信息看来,是加载程序时出错,你先单独加载程序并执行看看。因我的错误信息只是:
"fm00.dwg": 搜寻路径内找不到档案:
p2,p3的值不对。
p2,p3的值不对,R14中LWPOLYLINE的实体数据与POLYLINE不一样,顶点坐标格式不一样,你打开实体数据看一下就知道了。好了!!
(defun C:ZF (/ !ZF EN EN1 EM XM ANG LK P1 P2 P3 P4 P5); HOLDPT TMP)(setq KS (getvar "ltscale")
LK (* 2 KS)
)
(setvar "attdia" 0)
(setvar "cmdecho" 0)
(setvar "aperture" 3)
(setvar "pickbox" 3)
(while (/= !ZF t)
(princ "\n ")
(princ "\n ")
(setq EN (entsel "\n选择闸阀插入点:"))
(initget "Y N")
(setq XM (getkword "\n画法兰盘吗<Y/N>?"))
(if (or (= XM "Y") (= XM "y"))
(setq LK (* 2.5 KS))
(setq LK (* 2 KS))
)
(if EN ;if1
(progn
(setq EM (entget (car EN))) ;progn1
;|
;;增加一段把LWPOLYLINE转POLYLINE程序
;;-----------------------------------------------------------------------
(if (= (cdr (assoc 0 EM)) "LWPOLYLINE")
(progn
(setq HOLDPT (getvar "PLINETYPE"))
(setvar "PLINETYPE" 0)
(command "_.EXPLODE" (car EN))
(setq TMP (ssget "P"))
(command "_.PEDIT" (ssname TMP 0) "" "J" TMP "" "")
(setq EN (nentselp (cadr EN)))
(setvar "PLINETYPE" HOLDPT)
)
)
;;-----------------------------------------------------------------------
|;
;;改用CONVERTPOLY把LWPOLYLINE转POLYLINE程序
(if (= (cdr (assoc 0 EM)) "LWPOLYLINE")
(progn
(command "_.CONVERTPOLY" "H" (car EN) "")
(setq EM (entget (car EN)))
)
)
;;----------------------------------------------
(if (or (= (cdr (assoc 0 EM)) "POLYLINE") ;if2
(= (cdr (assoc 0 EM)) "LINE")
)
(progn ;progn2
(if (= (cdr (assoc 0 EM)) "POLYLINE")
(progn
(setq P2 (cdr
(assoc 10 (entget (setq EN1 (entnext (car EN)))))
)
P3 (cdr (assoc 10 (entget (entnext EN1))))
)
)
(progn
(setq P2 (cdr (assoc 10 (entget (car EN))))
P3 (cdr (assoc 11 (entget (car EN))))
)
)
)
(if (>= (distance P2 P3) (* 4 KS)) ;if3
(progn ;progn3
(setq ANG (angle P2 P3)
P1(osnap (cadr EN) "NEAREST")
P4(polar P1 ANG LK)
P5(polar P1 (+ ANG pi) LK)
ANG (* ANG (/ 180 pi))
)
(command "break" P1 "f" P4 P5)
(if (= LK (* 2.5 KS))
(cond
((and (> ANG 22.5) (< ANG 67.5))
(command "insert" "c:/dwg/fm00" P4 KS "" ""
"insert" "c:/dwg/fm00" P5 KS "" ""
)
)
((and (> ANG 202.5) (< ANG 247.5))
(command "insert" "c:/dwg/fm00" P4 KS "" ""
"insert" "c:/dwg/fm00" P5 KS "" ""
)
)
(t
(command "insert" "c:/dwg/fm00" P4 KS "" ANG
"insert" "c:/dwg/fm00" P5 KS "" ANG
)
)
) ;cond end
)
(cond
((and (> ANG 22.5) (< ANG 67.5))
(command "insert" "c:dwg/fm02" P1 KS "" "" "")
)
((and (> ANG 202.5) (< ANG 247.5))
(command "insert" "c:/dwg/fm02" P1 KS "" "" "")
)
(t (command "insert" "c:/dwg/fm01" P1 KS "" ANG ""))
) ;cond end
) ;progn3 end
) ;if3 end
) ;progn2 end
) ;if2 end
) ;progn1 end
(setq !ZF t)
) ;if1 end
(setvar "aperture" 10)
) ;while end
(grtext)
)
(setq en (entsel "\n选择闸阀插入点:")) 这句有问题.
应用getpoint得到点,entsel是获取一个实体. 龙龙仔 发表于 2002-10-25 08:38 static/image/common/back.gif(defun C:ZF (/ !ZF EN EN1 EM XM ANG LK P1 P2 P3 P4 P5); HOLDPT TMP)
(setq KS (getvar "ltscale")
...
龙大,我试了一下,一直提示找不到图,但我自己试着画了一个图放在那里了,也设置了支持路径
页:
1
[2]