dwgplt 发表于 2002-10-19 13:49:00

ll_j 发表于 2002-10-19 16:22:00

这是R12的程序吧,R14的PLine为LWPOLYLINE,与R12不同,实体组码结构变化很大。

dwgplt 发表于 2002-10-19 20:11:00

dwgplt 发表于 2002-10-20 10:09:00

ll_j 发表于 2002-10-20 12:18:00

不仅仅是改名的问题,实体结构也不同

不仅仅是改名的问题,实体结构也不同,R12的PL(R14中的3DPL)是实体跟随,所以使用entnext,R14的LWP是单实体。修改起来比较麻烦。

dwgplt 发表于 2002-10-20 12:45:00

陈伯雄 发表于 2002-10-21 08:28:00

很遗憾,我没有R14,无法测试...

龙龙仔 发表于 2002-10-21 10:18:00

增加一段把LWPOLYLINE转POLYLINE程序試試!!!(我也沒有R14)

(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)
          )
        )

        ;;-----------------------------------------------------------------------
        (if (= (cdr (assoc 0 EM)) "POLYLINE") ;if2
          (progn                        ;progn2
          (setq P2 (cdr (assoc 10 (entget (setq EN1 (entnext (car EN))))))
                  P3 (cdr (assoc 10 (entget (entnext EN1))))
          )
          (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)
)

cy956 发表于 2002-10-21 11:10:00

(COMMAND "convertpoly" 。。。

龙龙仔 发表于 2002-10-21 11:26:00

“CONVERTPOLY”是R14中的UNDOCUMENT指令,原来ACAD2002还在????

页: [1] 2
查看完整版本: [求助]请CAD高手帮忙看一下,这个LISP程序为什么在R14下无法用?