明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1499|回复: 4

新手请教! 请帮忙找找错误! 为什么运行时提示有错误???

[复制链接]
发表于 2003-10-30 16:37:00 | 显示全部楼层 |阅读模式
附带我的程序和里面用到的图块! 程序目的是 方便出图存档,用户点一下图框右下角,就可以自动取出图名和图号,生成.txt 文件.     请大家帮忙看看哪里有毛病!    多谢!

本帖子中包含更多资源

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

x
发表于 2003-10-30 16:44:00 | 显示全部楼层
DCL????
发表于 2003-10-30 16:56:00 | 显示全部楼层
没DCL文件呢!
 楼主| 发表于 2003-10-30 16:59:00 | 显示全部楼层
先不用考虑dcl行吗?   主要先试试程序可用否?!   

本帖子中包含更多资源

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

x
发表于 2003-10-31 08:00:00 | 显示全部楼层
;;p1 p2 p3 p4好像位置不對


;;用户出图拆打程序
;;sunke.lsp
(defun C:SUNKE ()
  (graphscr)
  (setq OCE (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (setq C (entsel "\nSelect the block to beat:"))
  ;;提示用户选择一个需要拆打的图块
  (setq E (entget (car C)))                ;查询一下插入图块的对象数据库    《-----------程序好像只能运行到这里
  (setq E1 (cdr (assoc 2 E)))                ;取出图块名称 ;LUCAS
  (setq        L '("A0"    "A1"    "A1L"   "A1-S"  "A2"    "A2L"   "A2-S"
            "A3"    "A3L"   "A3-S"  "A4"    "A4-S"  "BG"    "ML"
           )
  )
  ;;======>原来的程序此处少一个括号
  ;;将图块名称写入一个序列
  (setq I 0)
; (repeat 14                                ;共14种格式的图框
;   (setq LI (nth I L))                        ;=======>原来的程序此处少一个括号
    (if        ;(= E1 LI)                        ;做判断,看扫瞄到的图块是否是所要图框式
      (wcmatch E1 LI)
      (progn
        (setq B1 (cdr (assoc 41 E)))        ;得到图框的比例
        (setq P (cdr (assoc 10 E)))        ;得到图框的插入点坐标
        (setq X (car P))
        (setq Y (cadr P))
        (setq Z (caddr P))
        (setq X2 (- X (* 82 B1)))        ; 82=180-98
        (setq Y2 (+ Y (* 21 B1)))        ; 21=3*7
        (setq P2 (list X2 Y2 Z))        ;得到P2点坐标
        (setq X1 (- X (* 180 B1)))
        (setq Y1 (+ Y (* 56 B1)))
        (setq P1 (list X1 Y1 Z))        ;得到P1点坐标
        (setq X3 (- X (* 60 B1)))        ; 60=22+20+18
        (setq Y3 Y1)
        (setq P3 (list X3 Y3 Z))        ;得到P3点坐标
        (setq X4 (- X (* 10 B1)))
        (setq Y4 (+ Y (* 42 B1)))        ; 42=6*7
        (setq P4 (list X4 Y4 Z))        ;得到P4点坐标
        ;;-------取图名-------------
        (setq TUMING (ssget "w" P1 P2))        ;取得图名字符串
        (setq NUM1 (sslength TUMING))        ;取得该字符串中对象的数目
        (setq TM "")
        (if (/= NUM1 0)                        ;循环取得各个字符串,然后组成整个图名
          (progn
            (setq TMX (ssname TUMING 0))
            (setq TMX_X (entget TMX))
            (setq TMX_X_NAME (cdr (assoc 1 TMX_X)))
            (setq TM (strcat TM TMX_X_NAME)) ;得到图名
            (setq NUM1 (1- NUM1))
          )                                ;内层progn语句结束
        )                                ; 内层if语句结束
        ;;-------取得图名-----------
        ;;-------取图号-------------   
        (setq TUHAO (ssget "w" P3 P4))        ;取得图号字符串
        (setq NUM2 (sslength TUHAO))        ;取得该字符串中对象的数目  
        (setq TH "")
        (if (/= NUM2 0)                        ;循环取得各个字符串,然后组成整个图名
          (progn
            (setq THX (ssname TUHAO 0))
            (setq THX_X (entget THX))
            (setq THX_X_NAME (cdr (assoc 1 THX_X)))
            (setq TH (strcat TH THX_X_NAME)) ;得到图号
            (setq NUM2 (1- NUM2))
          )                                ;内层progn语句结束
        )                                ; 内层if语句结束
        ;;-------取得图号-----------

        ;;-------写成文本-----------
        (setq CHAIDA (open "C:/i.txt" "w"))
        (print TH CHAIDA)
        (princ "\n" CHAIDA)
        (print TM CHAIDA)
        (princ "\n" CHAIDA)
        (close CHAIDA)
      )                                        ;progn 的结束
      (setq I (1+ I))
    )                                        ; if的结束
  ;)                                        ;repeat 结束

  ;; -----制作该程序之对话框的AutoLISP驱动程序
  ;; -----加载指定的dcl文件----
  (setq DCL_ID (load_dialog "chaida.dcl"))
  ;; -----显示对话框,并确认对话框存在,否则结束程序------
  (if (not (new_dialog "chaida" DCL_ID))
    (exit)
  )
  (start_dialog)
  ;; -----设定按钮动作,若用户选择       按钮则  -------
  (set_tile "chazhao" "")
  ;; -----卸载dcl文件----
  (unload_dialog DCL_ID)
  (setvar "cmdecho" OCE)
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 12:22 , Processed in 0.158309 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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