明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2019|回复: 10

菜鸟问题,大大进来帮忙啊!~~~~~~

[复制链接]
发表于 2005-4-16 22:43:00 | 显示全部楼层 |阅读模式
有个表格想读入,但不知道在vlisp下用什么命令~整个表格是个数据,要求读入时可以一个一个的读,每个读入的数据都要用一次.......


才学2天,BOSS要我写个程序,


大致内容是:


绘制一个很简单的东西,每个东西有6个控制点,有很多个那样的东西要绘制


现在遇到的问题是不知道如何将每个物体的6个控制点分别读入


大概几千个物体,控制点的个数=几千x6,


求各位大大帮帮忙,


命令也好,帮我写一下就太........................


发表于 2005-4-17 04:07:00 | 显示全部楼层
大概的思路是这样的,如果数据的格式是(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6),其中x、y分别为坐标值,这样的话可以根据 ","        的位置来取相应的值,将相应的xy构成一个坐标点,就可以实现绘制时坐标点值的自动输入。
 楼主| 发表于 2005-4-17 20:56:00 | 显示全部楼层
ljpnb发表于2005-4-17 4:07:00大概的思路是这样的,如果数据的格式是(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6),其中x、y分别为坐标值,这样的话可以根据 \",\" 的位置来取相应的值,将相应的xy构...

格式是这样的 x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 y5 y6........... 数据和数据中间是空格 我不知道相关的命令行应该是什么.............
发表于 2005-4-17 21:58:00 | 显示全部楼层
参考一下这里http://www.mjtd.com/bbs/dispbbs.asp?boardid=3&star=1&replyid=23799&id=35298&skin=0&page=1 不一定最好,只能说可以实现取值
 楼主| 发表于 2005-4-19 11:32:00 | 显示全部楼层
楼上的大大,看不懂啊.....我是新手......


具体是这样:


有1个表格文件,可以把它做成txt的


具体格式是


X11 Y11 X12 Y12 X13 Y13 X14 Y14 X15 Y15 X16 Y16


X21 Y21 X22 Y22 X23 Y23 X24 Y24 X25 Y25 X26 Y26


X31 Y31 X32 Y32 X33 Y33 X34 Y34 X35 Y35 X36 Y36...


其中Xmn XY为坐标点m 为第几个 n为第几点


在DWG中具体是这样:


(X1,Y1)为起点,经过(X2,Y2)到达(X3,Y3)绘制一条圆弧


再从(X3,Y3)绘制一条直线到(X4,Y4)


然后从(X4,Y4)通过(X5,Y5)到达(X6,Y6)绘制一条圆弧


最后从(X6,Y6)直接拉直线到(X1,Y1)


每个物体的大小大致是2mx2m


每个物体的间距差不多2m就行了...............


帮帮忙行吗?


       


       


       

 楼主| 发表于 2005-4-19 11:39:00 | 显示全部楼层
不情啊...拜托大家了z~~~~
 楼主| 发表于 2005-4-21 07:46:00 | 显示全部楼层
发表于 2005-4-21 07:59:00 | 显示全部楼层
试试,写得很常规的思路,当中可以简化一下: ;;;主程序开始
(defun c:test ()
(SETQ F_ID (OPEN "C:data.TXT" "r"))
(setq os (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(while (SETQ text0 (READ-LINE F_ID))
(setq n1 (vl-string-position (ascii " ") text0))
(setq n2 (vl-string-position (ascii " ") text0 (1+ n1)))
(setq n3 (vl-string-position (ascii " ") text0 (1+ n2)))
(setq n4 (vl-string-position (ascii " ") text0 (1+ n3)))
(setq n5 (vl-string-position (ascii " ") text0 (1+ n4)))
(setq n6 (vl-string-position (ascii " ") text0 (1+ n5)))
(setq n7 (vl-string-position (ascii " ") text0 (1+ n6)))
(setq n8 (vl-string-position (ascii " ") text0 (1+ n7)))
(setq n9 (vl-string-position (ascii " ") text0 (1+ n8)))
(setq n10 (vl-string-position (ascii " ") text0 (1+ n9)))
(setq n11 (vl-string-position (ascii " ") text0 (1+ n10)))
(setq p1 (list (atof (substr text0 1 n1))
(atof (substr text0 (+ n1 2) (- n2 (1+ n1))))
)
)
(setq p2 (list (atof (substr text0 (+ n2 2) (- n3 (1+ n2))))
(atof (substr text0 (+ n3 2) (- n4 (1+ n3))))
)
)
(setq p3 (list (atof (substr text0 (+ n4 2) (- n5 (1+ n4))))
(atof (substr text0 (+ n5 2) (- n6 (1+ n5))))
)
)
(setq p4 (list (atof (substr text0 (+ n6 2) (- n7 (1+ n6))))
(atof (substr text0 (+ n7 2) (- n8 (1+ n7))))
)
)
(setq p5 (list (atof (substr text0 (+ n8 2) (- n9 (1+ n8))))
(atof (substr text0 (+ n9 2) (- n10 (1+ n9))))
)
)
(setq p6 (list (atof (substr text0 (+ n10 2) (- n11 (1+ n10))))
(atof (substr text0 (+ n11 2)))
)
)
(command "pline" p1 "a" "s" p2 p3 "l" p4 "a" "s" p5 p6 "l" "c")

)
(CLOSE F_ID)
(setvar "osmode" os)
(setvar "cmdecho" 1) (princ)
) ;_主程序结束
发表于 2005-4-21 08:33:00 | 显示全部楼层
ljpnb发表于2005-4-21 7:59:00试试,写得很常规的思路,当中可以简化一下: ;;;主程序开始(defun c:test ()    (SETQ F_ID (OPEN \"C:data.TXT\" \"r\"))   (setq os (getvar \"osmod...
简化后的程序:
  1. (defun c:test ()
  2.    (SETQ F_ID (OPEN "C:data.TXT" "r"))
  3.    (setq os (getvar "osmode"))
  4.    (setvar "cmdecho" 0)
  5.    (setvar "osmode" 0)
  6.    (while (SETQ text0 (READ-LINE F_ID))
  7.        (SETQ TEXTL (READ (STRCAT "(" TEXT0 ")")))
  8.        (SETQ TL (/ (LENGTH TEXTL) 2))
  9.        (SETQ I 0)
  10.        (REPEAT TL
  11.          (SETQ PP (READ (STRCAT "P" (ATOI (1+ I)))))
  12.          (SET PP (LIST (NTH (+ I I) TEXTL) (NTH (+ 1 I I) TEXTL)))
  13.          (SETQ I (1+ I))
  14.        )
  15.        (command "pline" p1 "a" "s" p2 p3 "l" p4 "a" "s" p5 p6 "l" "c")
  16.    )
  17.    (CLOSE F_ID)
  18.    (setvar "osmode" os)
  19.    (setvar "cmdecho" 1)   (princ)
  20. )
 楼主| 发表于 2005-4-21 20:55:00 | 显示全部楼层
楼上两位大大能给注释一下吗?在我机器上运行时老说 _$ (c:test)
; 错误: 参数类型错误: FILE nil 是我调试有错误吗? 还有~能不能给介绍本好点的学习教程呢? :) 给人鱼不如给人渔嘛~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 07:46 , Processed in 0.202149 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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