明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1497|回复: 4

[求助]真的需要这样的lisp程序,请帮助编写,先谢了(已解决)

[复制链接]
发表于 2004-10-9 09:59:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2004-10-9 13:53:42 编辑

LISP程序编写:



1、提供w1.dat


内容:


(20 15 10 8)


(23 19        6 18)


(45        30 12 13)


(22        17        18 56)


(33        20        45 50)


(5        40        34 27)


2、带DCL对话框,对话框含有:确定按扭、取消按扭、并且能显示w1.dat各行的内容,可供选择每一行的内容


3、当选择对话框w1.dat任一行的内容时,要求将该行的4个数据,分别写在AutoCAD绘图


中的已知的4个点上,字高为5。


4、已知的4个点座标:pt1(0,0) pt2(0,20) pt3(0,40) pt4(0,60)


要求都写详细了,请各位朋友帮助解决,不胜感激!!!!!
 楼主| 发表于 2004-10-9 11:06:00 | 显示全部楼层
我相信咱们版的实力的,再等等


祝福各位热心的人
发表于 2004-10-9 12:56:00 | 显示全部楼层
  1. (defun c:test (/ dcl_id dclfn f datalst line data)
  2.    (vl-load-com)
  3.    (setq dclfn (vl-filename-mktemp "test.dcl"))
  4.    (setq f (open dclfn "w"))
  5.    (mapcar '(lambda (x) (write-line x f))
  6.      '("Test: dialog { label = "选择数据";"
  7.          ":list_box { key = "data"; width = 20; height = 10;}"
  8.          "ok_cancel;"
  9.          "}"
  10.          )
  11.      )
  12.    (close f)
  13.    (setq dcl_id (load_dialog dclfn))
  14.    (if (null (new_dialog "Test" dcl_id))
  15.        (exit)
  16.        )
  17.    (setq f (open (findfile "w1.dat") "r"))
  18.    (setq datalst nil)
  19.    (while (setq line (read-line f))
  20.        (setq datalst (cons line datalst))
  21.        )
  22.    (close f)
  23.    (setq datalst (reverse datalst))
  24.    (start_list "data")
  25.    (mapcar 'add_list datalst)
  26.    (end_list)
  27.    (action_tile
  28.        "data"
  29.        "(if (= $reason 4)
  30.                                                      (progn
  31.                                                          (setq data (nth (atoi $value) datalst))
  32.                                                          (done_dialog 1)
  33.                                                      )
  34.                                              )"
  35.        )
  36.    (action_tile
  37.        "accept"
  38.        "(setq data (nth (atoi (get_tile "data")) datalst))(done_dialog 1)"
  39.        )
  40.    (if (= (start_dialog) 1)
  41.        (AddTexts (read data))
  42.        )
  43.    (unload_dialog dcl_id)
  44.    (vl-file-delete dclfn)
  45.    (princ)
  46.    )
  47. ;;;;----------------------------------
  48. (defun AddTexts  (txtlst / mspace ptlst)
  49.    (setq  mspace (vla-get-modelspace
  50.      (vla-get-activedocument (vlax-get-acad-object))
  51.      )
  52.   )
  53.    (setq  ptlst
  54.    (mapcar 'vlax-3d-point '((0 0 0) (0 20 0) (0 40 0) (0 60 0)))
  55.   )
  56.    (mapcar '(lambda (pt txt) (vla-addtext mspace txt pt 5.0))
  57.      ptlst
  58.      txtlst
  59.      )
  60.    (vlax-release-object mspace)
  61.    )
 楼主| 发表于 2004-10-9 13:45:00 | 显示全部楼层
好高兴啊!!!! 非常谢谢alin
 楼主| 发表于 2004-10-14 15:59:00 | 显示全部楼层
alin版主献花以表感谢!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 13:33 , Processed in 0.169758 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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