明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1745|回复: 4

[求助]求助有关实体操作的函数??

[复制链接]
发表于 2003-8-18 16:46:00 | 显示全部楼层 |阅读模式
关于实体的判断与检测。  例如 ,面域与直线的区别。怎样通过表达式的判断区别开来呀
发表于 2003-8-19 14:02:00 | 显示全部楼层

回复

实体类型区别:
    面域 REGION    (= (cdr (assoc 0 (entget (car (entsel))))) "REGION")  返回t
    直线  LINE       (= (cdr (assoc 0 (entget (car (entsel))))) "LINE")  返回t
 楼主| 发表于 2003-8-20 09:37:00 | 显示全部楼层


你好:
    程序是这样的。
    (defun c:ju( / )
   (setq sd nil);;首先进行初始化
  (setq sm nil)
  (setq ew nil
        en nil
        )
  (setq sc nil)
  (prompt "\n 选择多义线或者要转化为多义线的图元")
  (setq sd (ssget w));;创建进行多义线转化的选择集
  (prompt "\n选择创建面域的对象")
  (setq sm (ssget w));;;选择创建面域的对象
  ;(prompt "\n选择面域的外腔")
  ;(setq ew(car(entsel "\n点选面域的外腔")))
  ;(prompt "\n 选择面域的内腔")
  ;(setq en (car(entsel "\n点选面域的内腔")))
  ;(prompt "\n选择查询的对象")
         ;(setq sc( ssget w))
        (if(= (cdr(assoc 0 (entget(car(entsel) ))))"region")
          ;(progn
            ;(command "pedit" sd "j" " ")
            ;(command "region" sd)
            ;(if(apply (eq'( (type ew) (type  en)  "ename" (type ew))))
            (progn
              (prompt "\n选择面域的外腔")
              (setq ew (ssget))
              (prompt "\n 选择面域的内腔")
              (setq en (ssget))
              (prompt "\n选择查询的对象")
              (setq sc( ssget w))
              (command "subtract" ew " " en " ")
              (command "massprop" sc)
              )
          )
          (if(=(cdr(assoc 0(entget(car(entsel))))) "pline")
            (progn
              (command "region" sm " ")
              )
            (progn
              (command "pedit" sd "j" " ")
              )
              ;(setq ew (car (entsel "\n点选面域的外腔")))
              ;(setq en (car (entsel "\n点选面域的内腔")))
              ;(command "subtract" ew " "  en " ")
              ;(command "massprop" sc)
            )
  )


主要想完成的功能:   1、如果图形未转化为多义线,先转化为多义线。“PEDIT”
                              2、如果图形已转化为多义线, 那么根据闭合的区域创建面域。
                                   ‘REGION“
                              3、对实体进行编辑,计算实体的差集。”SUBTRACT“
                                  (COMMAND ”SUBTRACT“ S1  ” “ S2) 为什么在计算实体差集
                                    时,选择的实体只有”从中减去的实体“即S1,而实体2 ,S2 选择
                                  无效呢。
                              4、怎样才能让程序一气呵成。一个命令执行结束呢。
                                   现在程序执行了”PEDIT“命令后,就会跳出。必须再执 行
                                   命令JU时,程序才会执行 ”REGION“ 命令。每  
                                   个都这样。

本帖子中包含更多资源

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

x
发表于 2003-8-20 10:10:00 | 显示全部楼层
  1.    (progn
  2.        (prompt "\n选择面域的外腔")
  3.        (setq ew (ssget))
  4.        (prompt "\n 选择面域的内腔")
  5.        (setq en (ssget))
  6.        (prompt "\n选择查询的对象")
  7.        (setq sc( ssget w))
  8.        (command "subtract" ew " " en " ")
  9.        (command "massprop" sc)
  10.        )


你的程序这里是不可行的,
你选择了内外腔后,还未进行SUBSTRACT,因此需要查询的对象还未生成,你边要求选择查询的对象,怎么选择呢?
 楼主| 发表于 2003-8-20 13:53:00 | 显示全部楼层
你好:

   我想得到这样的结果:

          惯性矩:      X    某个值
                            Y    某个值


应该怎么做呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 18:19 , Processed in 0.193113 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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