乐筑天下

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

[编程交流] 车门Lisp程序

[复制链接]

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 17:42:59 | 显示全部楼层
我用了align。。。。如果门很少,那没关系。。。当我需要添加60个不同的门时,这很耗时。我做了一个dinamic bock,但仍然是一个缓慢的方法
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:45:39 | 显示全部楼层
这可能有助于:
  1. (defun C:test ;| credits to: Lee Mac |; ( / *error* cm SelBname bn p Blk ll ur msg SS cen Grrr mc )
  2. (defun *error* (m) (redraw)(and cm (setvar 'cmdecho cm)) (and m (print m)) (princ))
  3. (defun SelBname ( / e bn )
  4.         (setvar 'errno 0)
  5.         (while (/= 52 (getvar 'errno))
  6.                 (setq e (car (entsel "\nSelect block to reinsert <exit>: ")))
  7.                 (cond
  8.                         ( (= 7 (getvar 'errno)) (princ "\nMissed, try again.") (setvar 'errno 0) )
  9.                         ( (and (= 'ENAME (type e)) (/= (cdr (assoc 0 (entget e))) "INSERT"))
  10.                                 (princ "\nThis is not a block.") (setq e nil)
  11.                         )
  12.                         ( (and e (not (alert "Visit lee-mac.com")) (setq bn (vla-get-EffectiveName (vlax-ename->vla-object e))) (setvar 'errno 52)) )
  13.                 ); cond
  14.         ); while
  15.         bn
  16. ); defun SelBname
  17. (redraw) (setq bn (SelBname))
  18. (while
  19.         (and
  20.                 (setq cm (getvar 'cmdecho)) (setvar 'cmdecho 0)
  21.                 bn
  22.                 (last (setq p (list (getpoint "\nSpecify insertion point <exit>: "))))
  23.                 (last (setq p (append p (list (getpoint (last p) "\nSpecify second point <exit>: ")))))
  24.                 (not (apply 'grdraw (append p (list 1 7))))
  25.                 (setq Blk
  26.                         (vla-InsertBlock
  27.                                 (vlax-get-property
  28.                                         (vla-get-ActiveDocument (vlax-get-acad-object))
  29.                                         (if (= 1 (getvar 'CVPORT)) 'Paperspace 'Modelspace)
  30.                                 ) ; AcSpc
  31.                                 (vlax-3D-point (car p)) bn 1. 1. 1. 0.
  32.                         )       
  33.                 )
  34.         )
  35.         (progn
  36.                 (vla-GetBoundingBox Blk 'll 'ur)
  37.                 (vla-ScaleEntity Blk (vlax-3D-point (car p))
  38.                         (/ (apply 'distance p) (abs (apply '- (mapcar 'car (mapcar 'vlax-safearray->list (list ll ur))))) )
  39.                 )
  40.                 (vla-put-Rotation Blk (apply 'angle p))
  41.                 (setq msg "\nPress [TAB] to change orientation, [ENTER] to exit: ")
  42.                 (and msg (princ msg)) (setvar 'errno 0)
  43.                 (setq SS (ssadd))
  44.                 (ssadd (handent (vla-get-Handle Blk)) SS)
  45.                 (setq cen (apply 'mapcar (cons '(lambda (a b) (/ (+ a b) 2.)) p)))
  46.                 (while (/= 52 (getvar 'errno))
  47.                         (setq Grrr (grread T))
  48.                         (cond
  49.                                 ((= (car Grrr) 2)
  50.                                         (cond
  51.                                                 ((= (cadr Grrr) (ascii "\t"))
  52.                                                         (and msg (princ msg))
  53.                                                         (and (not mc) (setq mc 0))
  54.                                                         (setq mc (rem (+ mc 1) 4))
  55.                                                         (cond
  56.                                                                 ( (or (= mc 1) (= mc 3) )
  57.                                                                         (command "_.MIRROR" SS "" "_non" cen "_non" (polar cen (+ (apply 'angle p) (/ PI 2.)) (apply 'distance p)) "_Y")
  58.                                                                 )
  59.                                                                 ( (or (= mc 2) (= mc 0) )
  60.                                                                         (command "_.MIRROR" SS "" "_non" cen "_non" (polar cen (apply 'angle p) (apply 'distance p)) "_Y")
  61.                                                                 )
  62.                                                         )
  63.                                                 )
  64.                                                 ((= (cadr Grrr) (ascii "\r"))
  65.                                                         (princ "\nExiting.") (redraw) (setvar 'errno 52)
  66.                                                 )
  67.                                         ); cond
  68.                                 )
  69.                                 ((= (car Grrr) 25)
  70.                                         (princ "\nExiting.") (redraw) (setvar 'errno 52)
  71.                                 )
  72.                         ); cond
  73.                 ); while
  74.         ); progn
  75. ); while/if
  76. (and cm (setvar 'cmdecho cm))
  77. (princ)
  78. );| defun |; (vl-load-com) (princ)

您只需要指定2个点,点击Tab键并在完成后输入。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:47:55 | 显示全部楼层
如果你看看这张图片,它是通过切开一段墙,然后在2D+中插入门的细节来完成的。宽度只是输入。它需要一个起点和一个旋入或旋出的方向来绘制门框。现在它的副本权利,所以没有代码,但总包仍然存在,如果你想要更多的信息给我一个下午。
 
如果我要重做这个任务,我会使用一个更容易调整大小的动态挡门。
175616rw6qk22njtj86uyu.jpg
回复

使用道具 举报

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 17:55:37 | 显示全部楼层
 
我收到了这个错误
 
错误的参数类型:numberp:#
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:59:30 | 显示全部楼层
 
这很奇怪,我这边一切都很好。
通过遵循本教程,您可以提供一些帮助,以找出代码在哪里失败。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 13:25 , Processed in 0.441782 second(s), 63 queries .

© 2020-2025 乐筑天下

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