乐筑天下

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

[编程交流] 使用lisp扩展线

[复制链接]

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 06:55:18 | 显示全部楼层
 
谢谢你的挑战
 
我考虑了很多,我得出的解决方案是按照绘制的顺序和方向绘制钢筋
 
请看所附的图片,因为它显示了即时通讯后
 
这是我的伪代码
 
你怎么想?
072315r5xlc02xp3kaf3kf.jpg
点3.dwg
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 07:00:30 | 显示全部楼层
不不不
 
它不会按我需要的方式工作
 
Pbe方式是最好的
 
需要更多思考时间
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 07:02:43 | 显示全部楼层
你好
还有一个想法,
首先创建我的初始post请求,我将标记明显和不明显的交点坐标,然后我将创建所有矩形,但将其限制为最大线段长度(墙)
相比提取钢筋,我将要求用户通过选择每个钢筋的左波顿点和右上点来选择要提取的钢筋。将这些坐标存储在名为“userCoor”的列表中,并从这些坐标中创建电抗
 
我认为这是唯一的方法(我知道的)来做到这一点。
 
你怎么想?
 
谢伊
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 07:04:27 | 显示全部楼层
  1. (defun c:demo ( / LWPoly _from pl pts temp corners ang mid v h 1p 2p objrot)
  2. ;;;                        Demo by pBe 06May2013                                        ;;;
  3. ;;; This demo will work only at the lower left corner and upper right corner        ;;;
  4. ;;;  It is written as a guide and not in any way complete and accurate                ::;
  5. (setvar 'pdmode 34)
  6. (setvar 'cmdecho 0)  
  7. (defun LWPoly (lst)
  8. (entmakex (append (list (cons 0 "LWPOLYLINE")
  9.                          (cons 100 "AcDbEntity")
  10.                          (cons 100 "AcDbPolyline")
  11.                          (cons 90 (length lst))
  12.                          )
  13.                    (mapcar (function (lambda (p) (cons 10 p))) lst))))
  14. ;;;        pBe05Nov2012        ;;;
  15. (defun _pBe:from (p d m)
  16.    (polar p (* pi (nth m '(0.25 0.75 1.25 1.75)))
  17.                     (* d (sqrt 2))
  18.    )
  19. )
  20. (if (setq pl (car (entsel "\nSelect Pline:")))
  21.   (progn
  22.           (setq pts (mapcar 'cdr (vl-remove-if-not '(lambda (e)
  23.                         (= (Car e) 10))(entget pl))))
  24.           (setq temp (ssadd))
  25.           (foreach p pts
  26.           (command "_point" "_non" p)
  27.                   (ssadd (entlast) temp))
  28.          
  29.         (While (setq corners nil pn (ssget '((0 . "POINT"))))
  30. ;;;        Written to work with only two selected points                ;;;
  31.                   (repeat 2
  32.                           (setq corners (cons (cdr (assoc 10 (entget (ssname pn 0)))) corners) )
  33.                           (ssdel (ssname pn 0) pn))
  34.                   (setq corners (If (> (Cadr (car corners))(Cadr (cadr corners))) (reverse corners) corners ))
  35.                   (setq ang (angle (setq 1p (car corners))(setq  2p (cadr corners))))
  36.                 (setq mid (mapcar '(lambda (x y) (* 0.5 (+ x y))) 1p 2p))
  37.                   (Setq h (- (car 2p)(car 1p)) v (- (cadr 2p) (cadr 1p)))
  38.                 (setq pts_
  39.                        (vl-sort
  40.                          (list 1p
  41.                                (list (car 1p) (cadr 2p))
  42.                                2p
  43.                                (list (car 2p) (cadr 1p))
  44.                          )
  45.                          '(lambda (a b)
  46.                             (cond
  47.                               ((> (cadr a) (cadr b)) T)
  48.                               ((equal (cadr a) (cadr b) 0.1) (< (car a) (car b)))
  49.                             )
  50.                           )
  51.                        )
  52.                 )
  53.         (if (and (< ang (/ pi 2.0)) (< (car 1p)(car 2p)))
  54.           (progn
  55.                   (setq st ( _pBe:from (caddr pts_) 2.5 0) objrot (ssadd) tr 0)
  56.                   (LWpoly (list (polar st (/ pi 2.0) 100)
  57.                               st
  58.                               (setq 3p (polar st 0 (- h 5.0)))
  59.                               (polar 3p (/ pi 2.0) 100)
  60.                         )
  61.                 )
  62.                     (ssadd  (entlast) objrot)
  63.                   (LWpoly (list (polar st 0 100)
  64.                               st
  65.                               (setq 3p (polar st (/ pi 2.0) (- v 5.0)))
  66.                               (polar 3p 0 100)
  67.                         )
  68.                 )
  69.             (ssadd  (entlast) objrot)
  70.           [b][color="blue"](prompt "\nMove Mouse up and down to rotate")[/color][/b]
  71.                 (while
  72.                   (progn
  73.                     (setq gr   (grread t 15 0)
  74.                           mode (car gr)
  75.                           data (cadr gr)
  76.                     )
  77. ;;;        pBe 11Oct2010        ;;;
  78.                     (cond ((= 5 mode)
  79.                            (if ((if (zerop tr)
  80.                                   <  > )  pi
  81.                                  (angle mid data)
  82.                                )
  83.                              (setq tr (boole 6 1 tr)
  84.                                    ro (command "_rotate" objrot "" "_non"
  85.                                                mid 180)   
  86.                              ) )  T  )
  87.                           ((member mode '(2 3)) nil)
  88.                     )
  89.                   )
  90.                 )  
  91.             
  92.           )
  93.     )
  94.   )
  95.            (command "_erase" temp "")
  96.     )
  97. )(princ)
  98. )

 
同样,samifox:
 
 
您应该能够使用上述代码作为起点来完成程序。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 07:09:23 | 显示全部楼层
谢谢pBe。这对我来说真的是一个很棒的起点!
我需要先学习你的代码才能继续
 
再次感谢
谢伊
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 07:11:07 | 显示全部楼层
脚本的代码真的很高,你能给代码添加一些注释吗?大多数功能对我来说都是新的。。。我甚至不能问一个问题
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 07:14:16 | 显示全部楼层
 
说真的samifox。帮助文件已准备就绪[F1]
 
  1. 5

 
理解代码的最好方法是一行一行地运行。。。。暂停然后重试。。。
 
重复我的好男人。。重复
 
[你可以做到]
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 07:19:19 | 显示全部楼层
我想我的“初学者”特权现在已经失效了
好的,谢谢PBE
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 07:21:50 | 显示全部楼层
 
.. 这不是samifox。只是想让你通过强迫你的灰质加班直到它发出咔哒声来学习。
 
但如果你真的需要我们的帮助。你知道在哪里可以找到我们。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 07:23:57 | 显示全部楼层
我知道。。。只是开玩笑。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 17:59 , Processed in 0.461911 second(s), 84 queries .

© 2020-2025 乐筑天下

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