乐筑天下

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

[编程交流] 垂直矩形Lisp

[复制链接]

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 20:00:21 | 显示全部楼层
也许这是一个让你困惑的例子。
通常,矩形会一直穿过带槽的零件。
回复

使用道具 举报

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 20:03:14 | 显示全部楼层
也许是一种解释:
 
槽(带凸起)用于机械紧固件,垂直相交矩形用于工具访问紧固件的机构。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 20:08:05 | 显示全部楼层
做槽的不是做一个完美的长方形:
 
LW多段线层:“CN\U 3-4\U PLY-SLOT”
空间:模型空间
手柄=70bb
关闭
恒定宽度0.00000000
区域2.17691944
周长7.63345115
 
点X=3052.78821521 Y=1484.80108524 Z=0.00000000
凸度-1.00000000
中心X=3053.11821521 Y=1484.80108524 Z=0.00000000
半径0.33000000
起始角度180.0000
端角0.0000
点X=3053.44821521 Y=1484.80108524 Z=0.00000000
点X=3053.44821521 Y=1482.02108524 Z=0.00000000
凸度-1.00000000
中心X=3053.11821521 Y=1482.02108524 Z=0.00000000
按ENTER继续:
半径0.33000000
起始角度0.0000
端角180.0000
点X=3052.78821521 Y=1482.02108524 Z=0.00000000
 
在修正之前,我认为这不能准确计算垂直度
 
-大卫
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:11:46 | 显示全部楼层
试试这个程序,它应该只适用于零度或180度的矩形形状。
 
  1. (defun c:Test (/ ss)
  2. ;; Tharwat 09.07.2015        ;;
  3. (princ "\nSelect polyline [rectangular shapes only]:")
  4. (if (setq ss (ssget '((0 . "LWPOLYLINE") (90 . 4) (-4 . "&=") (70 . 1))))
  5.      ((lambda (i / sn a b c pts p1 p2 p3 p4 1p 2p 3p 4p r)
  6.         (while (setq sn (ssname ss (setq i (1+ i))))
  7.           (vla-getboundingbox (vlax-ename->vla-object sn) 'a 'b)
  8.           (setq pts (mapcar 'vlax-safearray->list (list a b)))
  9.           (mapcar 'set '(p1 p3) pts)
  10.           (setq p2 (list (car p1) (cadr p3))
  11.                 p4 (list (car p3) (cadr p1))
  12.                 c  (inters p1 p3 p2 p4)
  13.                 )
  14.           (if (< (distance p1 p2) (distance p2 p3))
  15.             (setq r (list (distance p2 p3) (angle p2 p3)))
  16.             (setq r (list (distance p1 p2) (angle p1 p2)))
  17.             )
  18.           (setq 1p (polar (polar c (cadr r) 0.25)
  19.                           (+ (cadr r) (* pi 0.5))
  20.                           (/ (car r) 2.)
  21.                           )
  22.                 2p (polar 1p (+ (cadr r) pi) 0.5)
  23.                 3p (polar 2p (+ (angle 1p 2p) (* pi 0.5)) (car r))
  24.                 4p (polar 3p (angle 2p 1p) 0.5)
  25.                 )
  26.           (entmakex (list '(0 . "LWPOLYLINE")
  27.                           '(100 . "AcDbEntity")
  28.                           '(100 . "AcDbPolyline")
  29.                           '(90 . 4)
  30.                           '(70 . 1)
  31.                           '(8 . "CN_3-4_PLY-SLOT-25R")
  32.                           (cons 10 1p)
  33.                           (cons 10 2p)
  34.                           (cons 10 3p)
  35.                           (cons 10 4p)
  36.                           )
  37.                     )
  38.           )
  39.         )
  40.        -1
  41.        )
  42.      )
  43. (princ)
  44. )(vl-load-com)
回复

使用道具 举报

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 20:17:14 | 显示全部楼层
谢谢David和Tharwat。
 
大卫,不确定这个形状的差异在哪里。我们有一个三维实体,我们拉出一个工具选项板进行减法。
这主要是橱柜级胶合板结构,因此公差悬而未决。03".
 
Tharwat说,lisp很酷,但是它根据选定的多段线创建了一个固定大小的矩形。
 
是否不可能选取点1和2来确定位置并设置ucs,
第3点和第4点确定矩形的长度。
 
 
201515exmxprp7zxqq0h1i.jpg
 
 
也许我想得太多了。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:54 , Processed in 0.367703 second(s), 63 queries .

© 2020-2025 乐筑天下

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