乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 81|回复: 2

[求助]请CAD高手帮忙看一下,这个LISP程序为什么在R14下无法用?

[复制链接]

15

主题

33

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
93
发表于 2002-10-19 13:49:00 | 显示全部楼层 |阅读模式
回复

使用道具 举报

7

主题

611

帖子

9

银币

中流砥柱

Rank: 25

铜币
639
发表于 2002-10-19 16:22:00 | 显示全部楼层
不仅仅是改名的问题,实体结构也不同,R12的PL(R14中的3DPL)是实体跟随,所以使用entnext,R14的LWP是单实体。修改起来比较麻烦。
回复

使用道具 举报

15

主题

33

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
93
发表于 2002-10-20 10:09:00 | 显示全部楼层
(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画法兰盘吗?"))
    (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 &quotLINETYPE"))
            (setvar &quotLINETYPE" 0)
            (command "_.EXPLODE" (car EN))
            (setq TMP (ssget &quot"))
            (command "_.PEDIT" (ssname TMP 0) "" "J" TMP "" "")
            (setq EN (nentselp (cadr EN)))
            (setvar &quotLINETYPE" HOLDPT)
          )
        )
        ;;-----------------------------------------------------------------------
        (if (= (cdr (assoc 0 EM)) &quotOLYLINE") ;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 202.5) ( ANG 22.5) ( 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)
)
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-5-26 05:25 , Processed in 2.817837 second(s), 59 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表