明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2653|回复: 13

如何创建POLYLINE??

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

如何创建POLYLINE??

我的这段代码始终不能运行
提示:“错误: 输入中的点位置不正确”
请指教,谢谢


(defun c:ym ( / )

(entmake '((0 . "POLYLINE")
             ;(100 . "AcDbEntity")
             ;(67 . 0) (410 . Model)
             ;(8 . 0)
             ;(100 . "AcDb2dPolyline")
             ;(90 . 7)
             (70 . 128)
             ;(43 . 0.0)
             ;(38 . 0.0)
             (66 . 1)
             (10 1.9 10.0)
             (40 . 0.0) (41 .0.0) (42 . 0.0)
             (10 0.1 0.0)
             (40 . 0.0) (41 . 0.0) (42 . 1.0)
             (10 3.9 0.0)
             (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (10 2.1 10.0 0.0)
             (40 . 0.0) (41 . 0.0) (42 . -1.0)
             (10 5.9 10.0 0.0)
             (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (10 4.1 0.0 0.0)
             (40 . 0.0) (41 . 0.0) (42 . 1.0)
             (10 7.9 0.0 0.0)
             (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (210 0.0 0.0 1.0)
             )
  )

  (princ)
)

发表于 2022-5-7 19:57:05 | 显示全部楼层
本帖最后由 skg123 于 2022-5-7 20:08 编辑
  1. (defun c:tt ( / )
  2. (entmake '((0 . "POLY-LINE")
  3.              (100 . "AcDbEntity")
  4.              (67 . 0)
  5.              (8 . "0")
  6.              (100 . "AcDbPolyline")
  7.               (90 . 7)
  8.              (70 . 128)
  9.              (43 . 0.0)
  10.              (38 . 0.0)
  11.              (66 . 1)
  12.              (10 1.9 10.0)  (40 . 0.0) (41 . 0.0) (42 . 0.0)
  13.              (10 0.1 0.0)   (40 . 0.0) (41 . 0.0) (42 . 1.0)
  14.              (10 3.9 0.0)   (40 . 0.0) (41 . 0.0) (42 . 0.0)
  15.              (10 2.1 10.0 0.0)  (40 . 0.0) (41 . 0.0) (42 . -1.0)
  16.              (10 5.9 10.0 0.0)  (40 . 0.0) (41 . 0.0) (42 . 0.0)
  17.              (10 4.1 0.0 0.0)   (40 . 0.0) (41 . 0.0) (42 . 1.0)
  18.              (10 7.9 0.0 0.0)   (40 . 0.0) (41 . 0.0) (42 . 0.0)
  19.              (210 0.0 0.0 1.0)
  20.           )
  21. )
  22. (princ)
  23. )



  24. ;;By Longxin 明经通道 2006.03

  25. ;;生成一条pline
  26. ;;参数:
  27. ;;plist:坐标点表,如:((x1 y1 z1) (x2 y2 z2) (x2 y2 z2))或((x1 y1) (x2 y2) (x2 y2))
  28. ;;tudulist:各点之间的凸度表,与plist相对应,可为nil
  29. ;;bg:标高
  30. ;;clo:是否闭合,1:闭合,0:不闭合
  31. (defun c:test ()
  32. (setq a '((102.946 68.6354 3) (112.102 97.4851 3) (125.484 59.4879 3) (103.651 52.4513 3))
  33. b '(-1.02092 -0.485629 0 -1.31201)
  34. )
  35. (makepline a b 211 1)
  36. )

  37. (defun makepline (plist clo bg tudulist / dxf n i pt)
  38.   (setq bg  (cons 38 bg)
  39. i   0
  40. n   (length plist)
  41. dxf nil
  42.   )

  43.   (if (= clo 1)
  44.     (entmake (list '(0 . "POLYLINE") '(66 . 1) '(70 . 1) bg))
  45.     (entmake (list '(0 . "POLYLINE") '(66 . 1) bg))
  46.   )
  47.   (repeat n
  48.     (setq pt (nth i plist)
  49.    pt (list (nth 0 pt) (nth 1 pt))
  50.     )
  51.     (if tudulist
  52.       (entmake (list (cons 0 "VERTEX")
  53.        (cons 10 pt)
  54.        (cons 42 (nth i tudulist))
  55.         )
  56.       )
  57.       (entmake (list (cons 0 "VERTEX")
  58.        (cons 10 pt)
  59.         )
  60.       )
  61.     )
  62.     (setq i (1+ i))
  63.   )
  64.   (entmake '((0 . "SEQEND")))
  65.   (princ)
  66. )
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=44662&highlight=POLYLINE
代码来源 上面帖子的 5楼,但是我没有测试成功
(entmake '((0 . "POLYLINE")

本帖子中包含更多资源

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

x
发表于 2022-5-7 21:03:52 | 显示全部楼层
搜索了一晚上,终于成功了
https://www.highflybird.cn/drupal/node/148
  1. (defun c:test ()
  2. (setq pts '((102.946 68.6354 3) (112.102 97.4851 3) (125.484 59.4879 3) (103.651 52.4513 3))
  3. Closed 1
  4. )
  5. (Ent:Make_Poly pts 1)
  6. )
  7. (defun Ent:Make_Poly (pts Closed / e)
  8.   (if (=  Closed 1)
  9.     (setq e (Entmake (list '(0 . "POLYLINE") '(70 . 9))))
  10.     (setq e (Entmake (list '(0 . "POLYLINE") '(70 . 8))))
  11.   )
  12.   (foreach p pts
  13.     (entmake (list '(0 . "VERTEX") '(70 . 32) (cons 10 p)))
  14.   )
  15.   (entmake '((0 . "SEQEND")))
  16.   (entlast)
  17. )
发表于 2022-5-7 20:16:49 | 显示全部楼层
本帖最后由 skg123 于 2022-5-7 21:13 编辑

(conmand ".3dpoly" pt1 pt2 pt 3 pt4 "C")

完整代码,请翻看论文
https://www.docin.com/p-1521012869.html

高飞鸟大神的代码

https://www.highflybird.cn/drupal/node/148

本帖子中包含更多资源

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

x
发表于 2008-5-28 17:17:00 | 显示全部楼层

看看

(entmake '((0 . "LWPOLYLINE")
             (100 . "AcDbEntity")
             (67 . 0)
      (410 . "Model")
             (8 . "0")
             (100 . "AcDbPolyline")
             (90 . 7)
             (70 . 128)
             (43 . 0.0)
             (38 . 0.0)
             (66 . 1)
             (10 1.9 10.0)  (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (10 0.1 0.0)   (40 . 0.0) (41 . 0.0) (42 . 1.0)
             (10 3.9 0.0)   (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (10 2.1 10.0 0.0)  (40 . 0.0) (41 . 0.0) (42 . -1.0)
             (10 5.9 10.0 0.0)  (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (10 4.1 0.0 0.0)   (40 . 0.0) (41 . 0.0) (42 . 1.0)
             (10 7.9 0.0 0.0)   (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (210 0.0 0.0 1.0)
             )
  )

发表于 2008-5-28 17:33:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2008-5-28 18:50:00 | 显示全部楼层

混分不是这个混法啊

去掉;和不去掉有什么分别啊

LWPOLYLINE我也试过

是加载时就提示错误

又找不到错在哪

发表于 2008-5-28 19:42:00 | 显示全部楼层

这样试试

(entmake '((0 . "LWPOLYLINE")
             (100 . "AcDbEntity")
             (67 . 0)
             (8 . "0")
             (100 . "AcDbPolyline")
             (90 . 7)
             (70 . 128)
             (43 . 0.0)
             (38 . 0.0)
             (66 . 1)
             (10 1.9 10.0)  (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (10 0.1 0.0)   (40 . 0.0) (41 . 0.0) (42 . 1.0)
             (10 3.9 0.0)   (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (10 2.1 10.0 0.0)  (40 . 0.0) (41 . 0.0) (42 . -1.0)
             (10 5.9 10.0 0.0)  (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (10 4.1 0.0 0.0)   (40 . 0.0) (41 . 0.0) (42 . 1.0)
             (10 7.9 0.0 0.0)   (40 . 0.0) (41 . 0.0) (42 . 0.0)
             (210 0.0 0.0 1.0) 
          )
)

发表于 2008-5-28 20:03:00 | 显示全部楼层
自己检查下书写正不正确,可以先画一条多段线,再用ENTGET对比一下自己的.
 楼主| 发表于 2008-5-28 20:10:00 | 显示全部楼层

版主这个好用

但是没弄明白我的那个错在哪了

为什么不能执行

另外,

             (90 . 7)
             (70 . 128)
             (43 . 0.0)
             (38 . 0.0)
             (66 . 1)

这5对组码代表什么,版主能给我讲下吗

发表于 2008-5-28 20:30:00 | 显示全部楼层
为什么不看ACAD的帮助?
 楼主| 发表于 2008-5-29 13:07:00 | 显示全部楼层

就是看了帮助

多段线组码里就没有这几项

还有42组码的意义也找不到

发表于 2008-5-29 22:57:00 | 显示全部楼层
下面是R14版帮助内容 LWPOLYLINE组码
组码 说明
100  子类标记 (AcDbPolyline)
90   顶点数
70   多段线标志(位码);缺省值为 0:1 = 关闭的;128 = 多段线生成
43   常量宽度(可选,缺省值= 0);当设置了变化的宽度(组码 40 和/或 41)时,不使用该组码
38   标高(可选,缺省值= 0)
39   厚度(可选,缺省值= 0)
10   顶点坐标(在 WCS 中)(多图元),每个顶点都有该条目。:X 值;APP:二维点
20   DXF:顶点坐标的 Y 值(在 WCS 中)(多图元);每个顶点都有该条目。
40   起始宽度(多图元,每个顶点都有该条目)(可选,缺省值= 0,多条目)。如果设置了常量宽度(组码 43),则不使用该组码。
41   结束宽度(多图元,每个顶点都有该条目)(可选,缺省值= 0,多条目)。如果设置了常量宽度(组码 43),则不使用该组码。
42   凸度(多图元,每个顶点都有该条目)(可选,缺省值= 0)。
210  拉伸方向(可选,缺省值= 0, 0, 1)。
     DXF:X 值;APP:三维矢量
220, 230 DXF:拉伸方向的 Y 和 Z 值
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 14:38 , Processed in 0.214612 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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