乐筑天下

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

下面的程序能选取到二维平面内的直线端点,为什么不能选取到三维实体...

[复制链接]

11

主题

21

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2003-1-8 09:48:00 | 显示全部楼层 |阅读模式
下面的程序能选取到二维平面内的直线,为什么不能选取到三维立方体
中的边界直线呢?
请问:
1.是不是因为整个实体己为基本单元,其中并无直线信息呢?
2.不知如何才得到三维实体的各顶点坐标呢?
3.如何开一个动态数组来存储三维实体中未知个数的顶点坐标呢?还请不惜赐教啊!
(defun c:glp(/ ent el p1 p2)
   (setq ent (car (entsel "\n请选取直线:")))  ;;ent 为实体名
   (if ent (progn                  
       (setq el (entget ent))
       (if (equal (cdr (assoc 0 el)) "LINE")
         (progn
           (setq p1 (cdr (assoc 10 el)))    ;;p1,p2分别为直线的起、终点
           (setq p2 (cdr (assoc 11 el)))
           (princ "\n")
           (princ "端点1的坐标")
           (princ  p1)
           (princ "\n")
           (princ "端点2的坐标")
           (princ  p2)
          )(progn
           (princ "\n选择的不是直线")
       ))
    )(progn
     (princ "\n没有选择到直线。")
   ))
   (princ)
)
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-1-8 12:42:00 | 显示全部楼层
顶点可以存到列表中,要存多少都可以
回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2003-1-8 13:42:00 | 显示全部楼层
;;列示半径
;;这个办法在对大型3DSOLID非常慢
(defun CXF6 (/ SS DXF40)
  (setq SS (cadr (ENTSEL "\n请选3DSOLID边线为圆的物件: ")))
  (setq ENT (entlast))
  (command "_.solidedit" "e" "c" SS "" "0,0" "0,0" "" "")
  (if (= "CIRCLE" (cdr (assoc 0 (entget (entlast)))))
    (progn
      (setq DXF40 (cdr (assoc 40 (entget (entlast)))))
      (prompt (strcat "\n半径: "
                      (rtos DXF40)
                      "    直径: "
                      (rtos (* DXF40 2))
              )
      )
    )
  )
  (if (not (equal ENT (entlast)))
    (entdel (entlast))
  )
  (princ)
)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-5-30 11:23 , Processed in 1.338602 second(s), 69 queries .

© 2020-2025 乐筑天下

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