明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 424|回复: 5

[提问] 请教下这段代码有什么问题,为啥用list就报错

[复制链接]
发表于 2024-8-25 18:16:59 | 显示全部楼层 |阅读模式


;;多段线相对点计算函数
(defun createPline (basepoint points arc-pt-value-list / i temp )
  (vl-load-com)
  (setq acadObj (vlax-get-acad-object))
  (setq doc (vla-get-ActiveDocument acadObj))
  (setq modelSpace (vla-get-ModelSpace doc))
  ;; 创建多段线
  (setq i 0)
  (setq ptlist nil )
  (while (<= i (- (length points) 1)) ;;相对点计算
        (setq point (nth i points))
    (setq point-new (mapcar '+ basepoint point))
        (setq ptlist (cons point-new ptlist))
        (setq i (1+ i))
     )
  (setq temp (apply 'append ptlist ))
  (setq points (vlax-make-safearray vlax-vbDouble (cons 0 (- (length temp) 1))))
  (vlax-safearray-fill points temp )
  ;; 创建多段线
  (setq plineObj (vla-addPolyline modelSpace points))
  ;;多断线设置多点凸度值
  (set-convexity-for-multiple-points plineObj arc-pt-value-list )
)
  ;;设置多点凸度值函数
(defun set-convexity-for-multiple-points (plineObj arc-pt-value-list / a temp )
  (setq a 0)
  (if (/= nil arc-pt-value-list )
                       (repeat (length arc-pt-value-list)
      
      (progn
            (setq temp ( nth a arc-pt-value-list)
              arc-pt (nth 0 temp)
              arc-value (nth 1 temp))
        (vla-setBulge plineObj arc-pt arc-value)
        (setq a ( + 1 a))
       )
     )     
  )
)
;;绘制扶梯主程序
  (defun c:tt ()
  (setq bp (getpoint "\n确定基点:"))
(setq top-length (getreal "\n请确定上水平长度"
   (setq pts1 '(
                (-2826 0 0)
                (-2846.31 106.185 0)
                (-2827.908 200  0)
                (-2797.37 250  0)
                (-2776 250 0 )
                (-2776 150  0)
                (-2776 0 0)
                )
   )
   (setq line11 (createPline bp pts1 '(
                                       (3 0.2)
                                       )
                )
   )
;;创建直线1-2
    (setq pts2 '(
                 (-2797.37 250 0)
                 (-2876 250 0)
                 (-2876 950 0)
                 (-829 950 0)
                 (820.3194 507.8838 0)
                 )
    )
   (setq line12 (createPline bp pts2 '(
                                       (0 0.1325)
                                       (2 1)
                                       )
                )
   )
;;创建直线1-3
   (setq pts3 '(
                (-2827.908 200 0)
                (-2876 200 0)
                (-2876 1000 0)
                (-816.2831 1000 0)
                (833.7169 557.8838 0)
                )
   )
   (setq line13 (createPline bp pts3 '(
                                       (0 0.1325)
                                       (2 1)
                                       )
                )
   )
;;创建直线1-4
   (setq pts4 '(
                (-2776 150 0)
                (-193.7822 150 0)
                )
   )
   (setq line14 (createPline bp pts4 '(
                                       (0 0)
                                       )
                )
   )
;; 创建直线top-linex1
    (setq  ptsx1 (list
                  '(0 0 0)
                  ( list ((- ( - top-length) 250)) 0 0)
                  ( list ((- ( - top-length) 250)) -80 0)
                  ( list ((+ ( - top-length) 250)) -80 0)
                  ( list ((+( - top-length) 250)) 0 0)
                )
    )
;; 创建直线top-linex2
    (setq  ptsx2  (list
                   ( list ((+ ( - top-length) 50)) -80 0)
                   ( list ((+(-top-length) 50))  -1305 0)
                   ( 296.3263 -1305.0000 0)
                   )
    )
    (setq top-linex2 (createPline bp ptsx2 '(
                                             (0 0)
                                             )
                     )
    )
;; 创建直线top-linex3
    (setq  ptsx3  (list
                   (list (- top-length) -80 0)
                   (list (- top-length) -1700 0)
                   )
    )
    (setq top-linex3 (createPline bp ptsx3 '(
                                             (0 0)
                                             )
                     )
    )
)








发表于 2024-8-25 20:51:54 | 显示全部楼层
  1. ;;绘制扶梯主程序
  2. (defun c:tt ()
  3.   (setq bp (getpoint "\n确定基点:"))
  4.         (setq top-length (getreal "\n请确定上水平长度"))
  5.         (setq pts1 '(
  6.                                                                 (-2826 0 0)
  7.                                                                 (-2846.31 106.185 0)
  8.                                                                 (-2827.908 200  0)
  9.                                                                 (-2797.37 250  0)
  10.                                                                 (-2776 250 0 )
  11.                                                                 (-2776 150  0)
  12.                                                                 (-2776 0 0)
  13.                                                         )
  14.         )
  15.         (setq line11 (createPline bp pts1 '(
  16.                                                                                                                                                          (3 0.2)
  17.                                                                                                                                                  )
  18.                                                          )
  19.         )
  20.         ;;创建直线1-2
  21.         (setq pts2 '(
  22.                                                                 (-2797.37 250 0)
  23.                                                                 (-2876 250 0)
  24.                                                                 (-2876 950 0)
  25.                                                                 (-829 950 0)
  26.                                                                 (820.3194 507.8838 0)
  27.                                                         )
  28.         )
  29.         (setq line12 (createPline bp pts2 '(
  30.                                                                                                                                                          (0 0.1325)
  31.                                                                                                                                                          (2 1)
  32.                                                                                                                                                  )
  33.                                                          )
  34.         )
  35.         ;;创建直线1-3
  36.         (setq pts3 '(
  37.                                                                 (-2827.908 200 0)
  38.                                                                 (-2876 200 0)
  39.                                                                 (-2876 1000 0)
  40.                                                                 (-816.2831 1000 0)
  41.                                                                 (833.7169 557.8838 0)
  42.                                                         )
  43.         )
  44.         (setq line13 (createPline bp pts3 '(
  45.                                                                                                                                                          (0 0.1325)
  46.                                                                                                                                                          (2 1)
  47.                                                                                                                                                  )
  48.                                                          )
  49.         )
  50.         ;;创建直线1-4
  51.         (setq pts4 '(
  52.                                                                 (-2776 150 0)
  53.                                                                 (-193.7822 150 0)
  54.                                                         )
  55.         )
  56.         (setq line14 (createPline bp pts4 '(
  57.                                                                                                                                                          (0 0)
  58.                                                                                                                                                  )
  59.                                                          )
  60.         )
  61.         ;; 创建直线top-linex1
  62.         (setq  ptsx1 (list
  63.                                                                  '(0 0 0)
  64.                                                                  (list (- (- top-length) 250) 0 0)
  65.                                                                  (list (- (- top-length) 250) -80 0)
  66.                                                                  (list (+ (- top-length) 250) -80 0)
  67.                                                                  (list (+(- top-length) 250) 0 0)
  68.                                                          )
  69.         )
  70.         ;; 创建直线top-linex2
  71.         (setq  ptsx2  (list
  72.                                                                         (list (+ ( - top-length) 50) -80 0)
  73.                                                                         (list (+(- top-length) 50)  -1305 0)
  74.                                                                         '(296.3263 -1305.0000 0)
  75.                                                                 )
  76.         )
  77.         (setq top-linex2 (createPline bp ptsx2 '(
  78.                                                                                                                                                                                 (0 0)
  79.                                                                                                                                                                         )
  80.                                                                          )
  81.         )
  82.         ;; 创建直线top-linex3
  83.         (setq  ptsx3  (list
  84.                                                                         (list (- top-length) -80 0)
  85.                                                                         (list (- top-length) -1700 0)
  86.                                                                 )
  87.         )
  88.         (setq top-linex3 (createPline bp ptsx3 '(
  89.                                                                                                                                                                                 (0 0)
  90.                                                                                                                                                                         )
  91.                                                                          )
  92.         )
  93. )
发表于 2024-8-26 14:31:58 | 显示全部楼层
很好→很棒!很好~很棒!!很好……很棒!!!
 楼主| 发表于 2024-8-26 16:26:45 | 显示全部楼层

怎么使用这个编辑器啊,为啥我没有
发表于 2024-8-26 16:46:24 | 显示全部楼层
编辑器是飞诗 显示效果是 在编辑框上 的 <> 这个东西里面
 楼主| 发表于 2024-8-26 17:11:08 | 显示全部楼层
飞雪神光 发表于 2024-8-26 16:46
编辑器是飞诗 显示效果是 在编辑框上 的  这个东西里面

噢噢噢噢,谢谢。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 09:48 , Processed in 0.188351 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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