明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1058|回复: 5

[讨论] 求出立方体长宽高的值

[复制链接]
发表于 2015-4-24 09:41:34 | 显示全部楼层 |阅读模式
本帖最后由 434939575 于 2015-4-24 09:44 编辑
  1. (defun c:tt ( / 1:xy 1:z 1> 2> 2pt 3> 9:xy 9:z ang las leng lst p1 p9 pt:bo ptma ptmi s wid z)
  2.   (vl-load-com)
  3.   (setq s (car (entsel)))
  4.   (vla-getboundingbox
  5.     (vlax-ename->vla-object s)
  6.     'ptmi
  7.     'ptma
  8.   )
  9.   (setq 2pt (mapcar 'vlax-safearray->list (list ptmi ptma)))
  10.   (setq p1 (car 2pt))
  11.   (setq p9 (cadr 2pt))
  12.   (setq 1:z (caddr p1))
  13.   (setq 9:z (caddr p9))
  14.   (setq z (abs (- 9:z 1:z)))
  15.   (setq 1:xy (reverse (cdr (reverse p1))))
  16.   (setq 9:xy (reverse (cdr (reverse p9))))
  17.   (setq  ang (angle 1:xy
  18.        9:xy
  19.       )
  20.   )
  21.   (setq pt:bo (polar 1:xy ang (/ (distance 1:xy 9:xy) 2)))
  22.   (setq pt:bo (append pt:bo (list 9:z)))
  23.   (command "BOUNDARY" pt:bo "")
  24.   (setq las (entlast))
  25.   (setq lst (Hx-pl-list las))
  26.   (entdel las)
  27.   (setq 1> (car lst))
  28.   (setq 2> (cadr lst))
  29.   (setq 3> (caddr lst))
  30.   (setq leng (distance 1> 2>))
  31.   (setq wid (distance 2> 3>))
  32.   (print (strcat "长"
  33.      (rtos leng 2 2)
  34.      "宽"
  35.      (rtos wid 2 2)
  36.      "高"
  37.      (rtos z 2 2)
  38.    )
  39.   )
  40.   (princ)
  41. )    ;end
  42. (defun Hx-pl-list (SS0 / e elist ptlist) ;端点列表
  43.   (setq elist (entget SS0))
  44.   (foreach n elist
  45.     (if  (= 10 (car n))
  46.       (setq ptlist (cons (cdr n) ptlist))
  47.     )
  48.   )
  49.   (reverse ptlist)
  50. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

  • · 3D|主题: 8, 订阅: 0
发表于 2015-4-24 15:46:35 | 显示全部楼层
你这程序只适应于WCS、局限于沿Z轴拉伸的3DSOLID,离实用性还很远,期待你进一步的研究成果。

点评

估计难于上青天!  发表于 2015-4-24 19:35
发表于 2015-4-25 07:45:39 | 显示全部楼层
好像是飞诗有个提议,备份一个,然后将其炸开为直线,然后分析这一堆直线。
发表于 2015-4-25 08:42:03 | 显示全部楼层
USER2128 发表于 2015-4-25 07:45
好像是飞诗有个提议,备份一个,然后将其炸开为直线,然后分析这一堆直线。

为什么要炸开呢?不是有个提取边命令XEDGES吗?
发表于 2015-4-25 08:43:42 | 显示全部楼层
像这种标准的长方体,圆柱体应该不是问题,异形体才是难点
发表于 2015-4-25 08:58:50 | 显示全部楼层
lucas_3333 发表于 2015-4-25 08:42
为什么要炸开呢?不是有个提取边命令XEDGES吗?

谢谢你,之前还真不知道“XEDGES”命令。

XEDGES



请参见
创建线框模型
从三维实体、曲面、网格、面域或子对象的边创建线框几何图形。

访问方法


按钮

功能区: “常用”选项卡 “实体编辑”面板 “提取边”
菜单:“修改”“三维操作”“提取边”
概要

使用 XEDGES 命令,通过从以下对象中提取所有边,可以创建线框几何体:
三维实体
三维实体历史记录子对象
网格
面域
曲面
子对象(边和面)

按住 Ctrl 键的同时选择面、边和部件对象,如果需要,可重复此操作。直线、圆弧、样条曲线或三维多段线等对象是沿选定的对象或子对象的边创建的。

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

本版积分规则

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

GMT+8, 2024-11-22 21:38 , Processed in 0.197535 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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