找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 866|回复: 3

[求助]:请求可以设定绘图比例的LISP的源代码。谢谢!

[复制链接]
发表于 2007-5-5 16:07:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我在网上见到这个源代码。但是不能使用,不知道是什么问题呢?
我只懂得很少LISP编程的知识。现在希望能够拥有这样功能的LISP。请求高手们帮忙,谢谢!

这个是我在本论坛搜索到的LISP源代码。

;;比例设置程序    编写:正航
(DEFUN c:SSETBL        (/ bl blc dcl_id fdbl_list sxbl_list bln blm Fnane fa tmp)
  (setvar "cmdecho" 0)
  (setq        fdbl_list '("1:1    <优先选用>"
                    "2:1    <优先选用>"
                    "5:1    <优先选用>"
                    "10:1   <优先选用>"
                    "20:1   <优先选用>"
                    "50:1   <优先选用>"
                    "4:1    <允许选用>"
                    "2.5:1  <允许选用>"
                    "25:1   <允许选用>"
                    "40:1   <允许选用>"
                   )
  )
  (setq        sxbl_list '("1:1    <优先选用>"
                    "1:2    <优先选用>"
                    "1:5    <优先选用>"
                    "1:10   <优先选用>"
                    "1:20   <优先选用>"
                    "1:50   <优先选用>"
                    "1:1.5  <允许选用>"
                    "1:2.5  <允许选用>"
                    "1:3    <允许选用>"
                    "1:4    <允许选用>"
                    "1:6    <允许选用>"
                    "1:15   <允许选用>"
                    "1:25   <允许选用>"
                    "1:30   <允许选用>"
                    "1:40   <允许选用>"
                    "1:60   <允许选用>"
                    "1:100  <优先选用>"
                   )
  )
  (sset011)
  (setq tmp (getvar "dimlfac"))
  (setvar "userr1" tmp)
  (princ)
)


(defun sset011 (/ next)
  (setq next 1)
  (setq bl (getvar "dimlfac"))
  (setq blc (rtos bl))
  (setq dcl_id (load_dialog "sset01.DCL"));;
  (if (not (new_dialog "sset011" dcl_id))
    (exit)
  )
  (set_tile "BL" blc)
  (start_list "FD")
  (mapcar 'add_list fdbl_list)
  (end_list)
  (start_list "SX")
  (mapcar 'add_list sxbl_list)
  (end_list)
  (action_tile
    "FD"
    "(progn (setq bln (get_tile \"FD\"))(sset012))"
  )
  (action_tile
    "SX"
    "(progn (setq blm (get_tile \"SX\"))(sset013))"
  )
  (action_tile "BL" "(setq blc (get_tile \"BL\"))")
  (action_tile "READ" "(done_dialog 2)")
  (action_tile "accept" "(done_dialog 1)")
  (setq next (start_dialog))
    (if (= next 2)
    (sset014)
  )
  (unload_dialog dcl_id)
  (setvar "dimlfac" (distof blc))
  (princ)
)

(defun sset012 ()
  (cond
    ((= bln "0") (setq Bl 1))
    ((= bln "1") (setq Bl 0.5))
    ((= bln "2") (setq Bl 0.2))
    ((= bln "3") (setq Bl 0.1))
    ((= bln "4") (setq Bl 0.05))
    ((= bln "5") (setq Bl 0.02))
    ((= bln "6") (setq Bl 0.25))
    ((= bln "7") (setq Bl 0.4))
    ((= bln "8") (setq Bl 0.04))
    ((= bln "9") (setq Bl 0.025))
  )
  (setvar "dimlfac" bl)
  (setq blc (rtos bl))
  (set_tile "BL" blc)
)

(defun sset013 ()
  (cond
    ((= blm "0") (setq Bl 1))
    ((= blm "1") (setq Bl 2))
    ((= blm "2") (setq Bl 5))
    ((= blm "3") (setq Bl 10))
    ((= blm "4") (setq Bl 20))
    ((= blm "5") (setq Bl 50))
    ((= blm "6") (setq Bl 1.5))
    ((= blm "7") (setq Bl 2.5))
    ((= blm "8") (setq Bl 3))
    ((= blm "9") (setq Bl 4))
    ((= blm "10") (setq Bl 6))
    ((= blm "11") (setq Bl 15))
    ((= blm "12") (setq Bl 25))
    ((= blm "13") (setq Bl 30))
    ((= blm "14") (setq Bl 40))
    ((= blm "15") (setq Bl 60))
    ((= blm "16") (setq Bl 100))
  )
  (setvar "dimlfac" bl)
  (setq blc (rtos bl))
  (set_tile "BL" blc)
)

(defun sset014 (/)
  (setq fname "sset013.dat");;比例设置说明文件
  (setq fa (open fname "r"))
  (if (/= fa nil)
    (sset015)
    (close fa)
  )
)

(defun sset015 (/ line)
  (if (not (new_dialog "sset014" dcl_id))
    (exit)
  )
  (start_list "READ")
  (while
    (setq line (read-line fa))
     (add_list line)
  )
  (close fa)
  (mapcar 'add_list line)
  (end_list)
  (action_tile "accept" "(done_dialog)")
  (start_dialog)
  (unload_dialog dcl_id)
  (princ)
  (sset011)
)

;;======sset01.dcl
dcl_settings : default_dcl_settings { audit_level = 3; }
sset011 : dialog {
   initial_focus = "BL" ;
   label = "工程制图比例设定" ;
   : edit_box {
      edit_limit = 4 ;
      key = "BL" ;
      label = "绘图比例:  1:" ;
      width = 3 ;
      height = 1 ;
   }
   : boxed_column {
      label = "标准比例:" ;
      width = 7 ;
      height = 4 ;
      : popup_list {
         key = "FD" ;
         label = "放大:" ;
         width = 7 ;
         height = 1 ;
      }
      : popup_list {
         key = "SX" ;
         label = "缩小:" ;
         width = 7 ;
         height = 1 ;
      }
   }
   : button {
      key = "READ" ;
      label = "比例(GB/T 14690-93)" ;
      width = 5 ;
      height = 1 ;
   }
   ok_only ;
}

sset014 : dialog {
   label = "GB/T 14690-93 --有关比例的说明" ;
   : list_box {
      key = "READ" ;
      fixed_width = true ;
      fixed_height = true ;
      width = 72 ;
      height = 17 ;
   }
   ok_only ;
}


;;在化工设备绘制中,不按实体长度的比例绘图是用得很多的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2007-5-6 00:48:29 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-5-10 01:01:51 | 显示全部楼层
在此解释一下绘图比例和出图比例以及视图比例
绘图比例(以1:10)一般指的是在绘图的时候一个当前单位代表实际尺寸的10单位,这个时候只要在标注样式中设置相关的标注比例就可以的
视图比例(1:100)一般指的是绘图的时候尺寸依然是个当前单位代表实际尺寸的1个单位,但是为了更好的看图,只是把相关的文字字高进行相应的放大
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-5-10 09:13:48 | 显示全部楼层
我还是看不懂,麻烦楼主把图片也发上来,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-20 21:30 , Processed in 0.319521 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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