乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 72|回复: 12

[编程交流] 错误:中的额外右对齐

[复制链接]

16

主题

119

帖子

109

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
82
发表于 2022-7-5 13:25:00 | 显示全部楼层 |阅读模式
当我加载以下lisp时,我看到命令行消息“error:extra right paren on input”,在这里寻找帮助:-
 
  1. (defun c:Slice3DPoly ( / _FindZOnLine ed en i p1 p2 pl sl ss tp vd vl )
  2.    ;; A modification by Lee Mac of the code by David Bethel found here:
  3.    ;; http://www.cadtutor.net/forum/showthread.php?62556-3D-polyline-Intersection&p=426585&viewfull=1#post426585
  4.    (defun _FindZOnLine ( fp p1 p2 )
  5.        (cond
  6.            (   (or (equal p1 p2 1e-11)
  7.                    (equal (caddr p1) (caddr p2) 1e-11)
  8.                    (equal (list (car p1) (cadr p1)) (list (car p2) (cadr p2)) 1e-11)
  9.                )
  10.                (caddr p1)
  11.            )
  12.            (   (+  (caddr p1)
  13.                    (*  (-  (caddr p2) (caddr p1))
  14.                        (/  (distance (list (car p1) (cadr p1)) (list (car fp) (cadr fp)))
  15.                            (distance (list (car p1) (cadr p1)) (list (car p2) (cadr p2)))
  16.                        )
  17.                    )
  18.                )
  19.            )
  20.        )
  21.    )               
  22.    
  23.    (if
  24.        (and
  25.            (setq p1 (getpoint "\nSpecify First Point: "))
  26.            (setq p2 (getpoint "\nSpecify Second Point: " p1))
  27.            (setq ss (ssget "_F" (list p1 p2) '((0 . "POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 118) (-4 . "NOT>"))))
  28.        )
  29.        (progn
  30.            (repeat (setq i (sslength ss))
  31.                (setq en (ssname ss (setq i (1- i)))
  32.                      ed (entget  en)
  33.                      en (entnext en)
  34.                      vd (entget  en)
  35.                      vl nil
  36.                )
  37.                (while (eq "VERTEX" (cdr (assoc  0 vd)))
  38.                    (setq vl (cons  (cdr (assoc 10 vd)) vl)
  39.                          en (entnext en)
  40.                          vd (entget  en)
  41.                    )
  42.                )
  43.                (if (= 1 (logand 1 (cdr (assoc 70 ed))))
  44.                    (setq sl (cons (mapcar 'list vl (append (cdr vl) (list (car vl)))) sl))
  45.                    (setq sl (cons (mapcar 'list vl (cdr vl)) sl))
  46.                )
  47.            )
  48.            (foreach s (apply 'append sl)
  49.                (if
  50.                    (setq tp
  51.                        (inters p1 p2
  52.                            (list (caar  s) (cadar  s))
  53.                            (list (caadr s) (cadadr s))
  54.                        )
  55.                    )
  56.                    (setq pl (cons (list (car tp) (cadr tp) (_FindZOnLine tp (car s) (cadr s))) pl))
  57.                )
  58.            )
  59.            (entmakex '((0 . "POLYLINE") (10 0.0 0.0 0.0) (70 . ))
  60.            (foreach x
  61.                (vl-sort pl
  62.                    (function
  63.                        (lambda ( a b )
  64.                            (<  (distance p1 (list (car a) (cadr a)))
  65.                                (distance p1 (list (car b) (cadr b)))
  66.                            )
  67.                        )
  68.                    )
  69.                )
  70.                (entmakex (list '(0 . "VERTEX") (cons 10 x) '(70 . 32)))
  71.            )
  72.            (entmakex '((0 . "SEQEND")))
  73.        )
  74.    )
  75.    (princ)
  76. )
  77. (vl-load-com) (princ)

此lisp可在此处找到:-
https://www.cadtutor.net/forum/topic/33301-3d-polyline-intersection/
一个有趣的Lisp程序,看起来像是李和大卫贝瑟尔之间的好作品。我想试试看它对我是否有用。
不确定我为什么会出错。我正在使用AutoCAD 2016。
非常感谢您的帮助。
非常感谢。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 13:32:15 | 显示全部楼层
需要一个额外的)来完成第一个defun检查使用20岁的Lisp程序。也使用记事本++
 
回复

使用道具 举报

16

主题

119

帖子

109

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
82
发表于 2022-7-5 13:35:41 | 显示全部楼层
感谢您的及时回复。
我试着分析你附件中的数字和问号。lsp。
我想不出那些是什么意思。
我仍然无法确定应该在哪一行添加额外的)。
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 13:41:21 | 显示全部楼层
向下滚动代码。我已经指出了它应该去哪里”;
回复

使用道具 举报

0

主题

4

帖子

4

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 13:45:06 | 显示全部楼层
问题在第61行。我编辑了代码
  1. (entmakex '((0 . "POLYLINE") (10 0.0 0.0 0.0) (70 . ))

70标志为空,因此我将其设置为8(是3d多段线),并添加了额外的参数来关闭语句。在我的机器上进行了测试,结果正常。顺便说一句,这是一个很棒的例行公事。作者的荣誉。
这是一个完整的程序和变化
  1. (defun c:Slice3DPoly ( / _FindZOnLine ed en i p1 p2 pl sl ss tp vd vl )
  2.    ;; A modification by Lee Mac of the code by David Bethel found here:
  3.    ;; http://www.cadtutor.net/forum/showthread.php?62556-3D-polyline-Intersection&p=426585&viewfull=1#post426585
  4.    (defun _FindZOnLine ( fp p1 p2 )
  5.        (cond
  6.            (   (or (equal p1 p2 1e-11)
  7.                    (equal (caddr p1) (caddr p2) 1e-11)
  8.                    (equal (list (car p1) (cadr p1)) (list (car p2) (cadr p2)) 1e-11)
  9.                )
  10.                (caddr p1)
  11.            )
  12.            (   (+  (caddr p1)
  13.                    (*  (-  (caddr p2) (caddr p1))
  14.                        (/  (distance (list (car p1) (cadr p1)) (list (car fp) (cadr fp)))
  15.                            (distance (list (car p1) (cadr p1)) (list (car p2) (cadr p2)))
  16.                        )
  17.                    )
  18.                )
  19.            )
  20.        )
  21.    )               
  22.    
  23.    (if
  24.        (and
  25.            (setq p1 (getpoint "\nSpecify First Point: "))
  26.            (setq p2 (getpoint "\nSpecify Second Point: " p1))
  27.            (setq ss (ssget "_F" (list p1 p2) '((0 . "POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 118) (-4 . "NOT>"))))
  28.        )
  29.        (progn
  30.            (repeat (setq i (sslength ss))
  31.                (setq en (ssname ss (setq i (1- i)))
  32.                      ed (entget  en)
  33.                      en (entnext en)
  34.                      vd (entget  en)
  35.                      vl nil
  36.                )
  37.                (while (eq "VERTEX" (cdr (assoc  0 vd)))
  38.                    (setq vl (cons  (cdr (assoc 10 vd)) vl)
  39.                          en (entnext en)
  40.                          vd (entget  en)
  41.                    )
  42.                )
  43.                (if (= 1 (logand 1 (cdr (assoc 70 ed))))
  44.                    (setq sl (cons (mapcar 'list vl (append (cdr vl) (list (car vl)))) sl))
  45.                    (setq sl (cons (mapcar 'list vl (cdr vl)) sl))
  46.                )
  47.            )
  48.            (foreach s (apply 'append sl)
  49.                (if
  50.                    (setq tp
  51.                        (inters p1 p2
  52.                            (list (caar  s) (cadar  s))
  53.                            (list (caadr s) (cadadr s))
  54.                        )
  55.                    )
  56.                    (setq pl (cons (list (car tp) (cadr tp) (_FindZOnLine tp (car s) (cadr s))) pl))
  57.                )
  58.            )
  59.            (entmakex '((0 . "POLYLINE") (10 0.0 0.0 0.0)  (70 . 8)))
  60.            (foreach x
  61.                (vl-sort pl
  62.                    (function
  63.                        (lambda ( a b )
  64.                            (<  (distance p1 (list (car a) (cadr a)))
  65.                                (distance p1 (list (car b) (cadr b)))
  66.                            )
  67.                        )
  68.                    )
  69.                )
  70.                (entmakex (list '(0 . "VERTEX") (cons 10 x) '(70 . 32)))
  71.            )
  72.            (entmakex '((0 . "SEQEND")))
  73.        )
  74.    )
  75.    
  76.    (princ)
  77. )
  78. (vl-load-com) (princ)
回复

使用道具 举报

16

主题

119

帖子

109

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
82
发表于 2022-7-5 13:51:45 | 显示全部楼层
 
感谢您回复德拉诺思。
不幸的是,修改后我收到了相同的错误消息?
这真是个谜。
 
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 13:55:15 | 显示全部楼层
你好
试试这个。
  1. 4
回复

使用道具 举报

16

主题

119

帖子

109

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
82
发表于 2022-7-5 14:03:59 | 显示全部楼层
 
Blue先生,
真的非常感谢你。我很感谢你帮我解决这个问题。
这确实是一个令人印象深刻的惯例,我将使用。
我同样感谢作者李·麦克和大卫·贝瑟尔。
再次为Blue先生干杯。
回复

使用道具 举报

16

主题

119

帖子

109

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
82
发表于 2022-7-5 14:09:33 | 显示全部楼层
 
嗨,塔瓦,
你的鹰眼也发现了这个错误。
我非常感谢你抽出时间指出这一点。
干杯
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 14:13:29 | 显示全部楼层
@对不起,我没有注意到你之前的帖子,你已经解决了这个问题。
随时欢迎你。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 00:49 , Processed in 1.956259 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表