找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 854|回复: 8

[求助] [求助]:救教关于编能绘出多段线的lisp程序!!

[复制链接]
发表于 2005-4-2 16:37:39 | 显示全部楼层 |阅读模式

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

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

×
先决条件是程序中不能用到command函数,(用这个函数的多段线程序我已经搞定了)
我用entmake函数只能编出line线,一直编不出pline线程序,有会的教教我!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3个

财富等级: 恭喜发财

发表于 2005-4-2 18:09:28 | 显示全部楼层
(
(-1 . <图元名: 40095978>)
(0 . "LWPOLYLINE")
(330 . <图元名: 40093cc0>)
(5 . "3AF")
(100 . "AcDbEntity")
(67 . 0)
(410 . "Model")
(8 . "0")
(6 . "Continuous")
(100 . "AcDbPolyline")
(90 . 10) (70 . 128)
(43 . 0.0) (38 .
0.0)
(39 . 0.0)
(10 101.768 52.6005)
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(10 130.573 70.5614)
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(10 143.478 87.6013)
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(10 139.1 102.569)
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(10 120.664 107.174)
(40 . 0.0) (41 . 0.0)
(42 . 0.0)
(10 96.4681 97.5028)
(40. 0.0)
(41 . 0.0)
(42 . 0.0)
(10 78.2632 89.9039)
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(10 74.8065 86.2196)
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(10 73.8848 70.1009)
(40 . 0.0)
(41 . 0.0)
(42 . 0.0)
(10 90.4766 68.489)
(40 . 0.0)
(41 . 0.0)
(42. 0.0)
(210 0.0 0.0 1.0))

多段线组码

组码                  说明

100 :                  子类标记(AcDb2dPolyline 或 AcDb3dPolyline)

10   :                    DXF:始终为 0;APP:一个“伪”点,X 和 Y 值始终为零,Z 值为多段线的标高(二维时在 OCS 中,三维时在 WCS 中)

20     :             DXF:始终为零

30   :                     DXF:多段线的标高(二维时在 OCS 中,三维时在 WCS 中)

39:
厚度(可选,缺省值= 0)

70:
多段线标志(位编码);缺省值为 0:  

1 = 这是一个闭合的多段线(或在 M 方向闭合的多边形网格);  

2 = 曲线拟合添加了顶点;  

4 = 添加样条曲线拟合添加了顶点;  

8 = 这是一个三维多段线;  

16 = 这是一个三维多边形网格;  

32 = 在 N 方向闭合的多边形网格;  

64 = 多段线是多面网格;  

128 = 不断在此多段线顶点的周围生成线型图案;

40:
缺省开始宽度(可选,缺省值= 0)

41:
缺省结尾宽度(可选,缺省值= 0)

71:
多边形网格的 M 顶点数(可选,缺省值= 0)

72:
多边形网格的 N 顶点数(可选,缺省值= 0)

73:
平滑表面 M 向的密度(可选,缺省值= 0)

74:
平滑表面 N 向的密度(可选,缺省值= 0)

75:
曲线和平滑表面类型(可选,缺省值= 0),整型编码,不是位码:  

0 = 无平滑表面拟合:  

5 = 二次 B 样条曲线表面;  

6 = 三次 B 样条曲线表面;  

8 = Bezier 表面

210:
拉伸方向(可选,缺省值= 0, 0, 1)  

DXF:X 值;APP:三维矢量

220, 230:
DXF:拉伸方向的 Y 和 Z 值(可选)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-2 19:23:54 | 显示全部楼层
谢谢2楼的回复!!我不是想要这个,我是想解决用LISP自己编一个绘多断线的函数,
下面是我编的一个lisp,但绘的多断线是一截一截的,我要的是连续的多断线,就象cad自带的,pline命令一样.
(defun hx ()

  (setq        z1 (getpoint "\n第一点:")
        z3 z1
        z1 (cons 10 z1)
        z1 (list '(0 . "vertex") z1)
  )
  (while
    (setq z2 (getpoint z3 "\n第二点:")
          z3 z2
          z2 (cons 10 z2)

          z2 (list '(0 . "vertex") z2)
    )
     (entmake '((0 . "polyline") (66 . 1)))
     (entmake z1)
     (entmake z2)

     (entmake '((0 . "seqend")))
     (setq z1 z2)
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-7 22:46:56 | 显示全部楼层
复杂图元在其定义完成之前,不会有任何部分显示在图形中。直到最终的 seqend 和 endblk 子图元被传入 entmake,图元才会出现在图形数据库中。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-8 13:01:42 | 显示全部楼层
我是一个新手啊!现在学习编 线切割3B 程序 的LISP语言啊!不知道怎么编啊!有没有样例指教一下! 谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-11 17:05:19 | 显示全部楼层
;;為甚麼不用COMMAND?

  1. (defun HX (/ Z1 Z2 Z3)
  2.   (vl-load-com)
  3.   (setq        Z1 (getpoint "\n指定起點: ")
  4.         Z3 Z1
  5.         Z1 (cons 10 Z1)
  6.         Z1 (list '(0 . "vertex") Z1)
  7.   )
  8.   (entmake '((0 . "polyline") (66 . 1)))
  9.   (while (setq Z2 (getpoint Z3 "\n指定下一點: "))
  10.     (grdraw (cdadr Z1) Z2 -1 1)               
  11.     (princ)
  12.     (setq Z3 Z2
  13.           Z2 (cons 10 Z2)
  14.           Z2 (list '(0 . "vertex") Z2)
  15.     )
  16.     (entmake Z1)
  17.     (entmake Z2)
  18.     (setq Z1 Z2)
  19.   )
  20.   (entmake '((0 . "seqend")))
  21.   (redraw)
  22.   (princ)
  23. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-12 17:30:00 | 显示全部楼层
(setq p0 (getpoint "\n请输入第一点<退出>")) ;线的第一点
  (setq p1 (getpoint "\n输入下一点<退出>"))
  (command "pline" p0 p1 "")                ;画第一段线
  (setq ss (entlast))
  (setq p2 (getpoint "\n输入下一点<退出>"))
  (while (/= p2 nil)
    (progn
      (command "pline" p1 p2 "")
      (setq ss1 (entlast))
      (command "pedit" ss "j" ss1 "" "")
      (setq ss (entlast))
      (setq p1 p2)
      (setq p2 (getpoint "\n输入下一点<退出>"))
    )
  )                                        ;如果最后一点不是空,就一直画pline,并和前一条pline合并为一个pline


但有一些问题我不知怎么解决
1。我想在中间加一个u的参数,画错了可以回到上一段线,和pline中的一样,我还想加一个c的参数,可以封闭pline,这两个我都不知怎么下手,请大家帮着给解答一下,谢谢先
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

发表于 2005-4-16 23:37:37 | 显示全部楼层
为什么不能command函数?先说明理由
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-13 20:30:05 | 显示全部楼层
这个程序能合并二级多段线吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 12:44 , Processed in 0.209473 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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