明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: spring

哪位大侠愿意帮小第写一个LISP程序吗?(关于模具的)

  [复制链接]
发表于 2003-2-9 11:43:00 | 显示全部楼层

试试看,可不可以用

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:ca (/ dot dq)                        ; start view1)
;;;____________________________________________
  (defun setlay        (lay cor lty / ACDOC LAYS VVLAY)
                                        ;lay:字串;cor:颜值;LTY:型
    (setq acDoc        (vla-get-ActiveDocument (vlax-get-acad-object))
          lays        (vla-get-Layers acDoc)
    )
    (if        (null (tblobjname "LAYER" lay))
      (progn
        (if (/= "CONTINUOUS" LTY)
          (progn
            (if        (null (entlast))
              (progn
                (command "circle" "0,0" "0.5")
                (COMMAND "CHANGE" (ENTLAST) "" "" "LT" LTY "")
                (entdel (Entlast))
              )
              (COMMAND "CHANGE" (ENTLAST) "" "" "LT" LTY "")
            )
          )
        )
        (entmake (list
                   '(0 . "LAYER")
                   '(100 . "AcDbSymbolTableRecord")
                   '(100 . "AcDbLayerTableRecord")
                   (cons 6 lty)
                   (cons 62 cor)
                   '(70 . 0)
                   (cons 2 lay)
                 )
        )
        (setvar "clayer" lay)
      )
      (progn                                ;已存在
        (setq vvlay (vla-Item lays lay))
        (if (= (vla-get-Freeze vvlay) :vlax-true)
          (vla-put-Freeze vvlay :vlax-false) ;解冻
        )
        (if (= (vla-get-Lock vvlay) :vlax-true)
          (vla-put-Lock vvlay :vlax-false) ;解锁
        )
        (if (= (vla-get-LayerOn vvlay) :vlax-false)
          (vla-put-LayerOn vvlay :vlax-true) ;可见
        )
        (vla-put-ActiveLayer acDoc vvlay) ;设为当前层
      )
    )
  )
;;;____________________________________________
(defun        ourscg ()
   (setq count 0)
   (setq emax (sslength sec))
   (while (< count emax)
     (setq EN (ssname sec COUNT)
           ED (ENTGET EN)
     )
     (SETQ ED (SUBST (CONS 8 wj) (assoc 8 ed) ED))
                                        ;(SETQ ED (SUBST (CONS 8 "1") (assoc 8 ed) ED))
     (ENTMOD ed)
     (SETQ COUNT (1+ COUNT))
   )                                        ;WHILE
   (Setq count nil)
)                                        ;FIRST OF PROGN
;;;____________________________________________
  (defun se ()
    (setq sec (ssget (list (cons 0 "CIRCLE"))))
    (if        sec
      (setq kg1 0)
      (setq kg1 1)
    )
  )
;;;____________________________________________
  (setq dot 4)
  (setlay "ph" 4 "CONTINUOUS")
  (setlay "ps" 1 "CONTINUOUS")
  (setlay "die" 7 "CONTINUOUS")
  (SETQ wj "ph")
  (setq kg1 1)
  (SETQ Dq (LOAD_DIALOG "spring.DCL"))
  (while (> dot 1)
    (if        (new_dialog "spring" dq)
      (progn
        (mode_tile "accept" kg1)
        (foreach d '("ph" "ps" "die")
          (action_tile d "(setq wj $key)")
        )
        (set_tile wj "1")
        (action_tile "se" "(done_dialog 3)")
        (action_tile "view1" "(done_dialog 2)")
        (action_tile "cancel" "(done_dialog 0)")
        (setq dot (start_dialog))
        (cond
          ((= 1 dot) (ourscg))
          ((= 3 dot) (se))
          ((= 2 dot)
           (PROGN
             (while (getpoint "\n  回车或空格退出:.."))
           )
          )
        )
      )
    )
  )
  (setq ss2 nil)
  (unload_dialog dq)
  (princ)
)

;;;;;;;;;;;;;;;;;;;;;
;;;sprinc.dcl
spring:dialog{label = "异形零件绘制";
:row{
:radio_column{label="选择项";
   :radio_button {label = "【上固定板】";key = "ph";}
   :radio_button {label = "【上卸料板】";key = "ps";}
   :radio_button {label = "【下 模 板】";key = "die";}
     }
:boxed_column{fixed_width=true;
       :button{label="选取实体";key="se";fixed_width= true;width= 8;alignment = centered;}
       :button{label="CAD预览";width=5;fixed_width = true;key="view1";alignment=centered;}
       }
       }
   ok_cancel;
    }
 楼主| 发表于 2003-2-20 19:09:00 | 显示全部楼层

不能用A

 楼主| 发表于 2003-2-20 19:13:00 | 显示全部楼层

不能用啊!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2003-2-21 21:04:00 | 显示全部楼层

先在AutoCAD的Command下运行(vl-load-com)试试

 楼主| 发表于 2003-2-23 12:39:00 | 显示全部楼层

谢谢,在2002下可以用,R14就不行了!!!

 楼主| 发表于 2003-2-23 12:53:00 | 显示全部楼层

可是我要的是复制到指定的图层中去,而且可以多块模板!!!

发表于 2003-2-23 13:24:00 | 显示全部楼层

改写一下就行了

改写一下就好了,自己试试改一下
 楼主| 发表于 2003-2-23 15:21:00 | 显示全部楼层

好的,谢谢前生斑竹!!!

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 05:34 , Processed in 0.174441 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表