乐筑天下

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

请看一下程序问题出在哪里

[复制链接]

44

主题

164

帖子

8

银币

后起之秀

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

铜币
340
发表于 2003-8-19 14:11:00 | 显示全部楼层 |阅读模式
诸位专家:
  (defun c:gx( /)
     (prompt "\n选择转化为多义线的图元")
    (setq a (ssget  w))
      (prompt "\n 选择创建面域的集合")
     (setq b (ssget w))
   (command "pedit" a "j" " "
                   "region"  b)
    (prompt  "选择减去的实体")
   (setq   c (ssget w))
   (prompt "选择从中减去的实体")
   (setq d (ssget w))
  (prompt "选择查询面域的质量与特性”)
( setq   e  (ssget  w))
  (command  "subtract" c " " d  "   ")
  (command "massprop" e)
   1、程序总是每次运行一次才能执行下面的命令,(例如:多义线编辑完成以后,就会
        跳出,必须再执行命令 GX后,才会执行创建面域)
   2、实体的差集计算总是只能选择 实体C(减去的实体) (实体  d 选不上)。
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-8-19 15:00:00 | 显示全部楼层
不是很明白你程序的过程,
转换多义线过程应该还有一个提示(如果选择的不是PLINE),是否转换为多义线,你第一次未做这个,因此第二次运行可以成功。
你的(ssget w)是什么意思?想表达什么,因为你这样与(ssget)一样,而且如果给W附上值后就会产生错误。
回复

使用道具 举报

44

主题

164

帖子

8

银币

后起之秀

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

铜币
340
发表于 2003-8-19 17:14:00 | 显示全部楼层
你好:
   前面的选择集(setq a (ssget))这样你说对了。
   关键在后面命令 (SUBTRACT ) 求实体的差集,总是选择第一个呀,第二个“选择从中
  减去的实体”就选不上了。
回复

使用道具 举报

44

主题

164

帖子

8

银币

后起之秀

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

铜币
340
发表于 2003-8-19 17:24:00 | 显示全部楼层
程序大体思想:
     首先将图形的线段,通过“PEDIT“命令转化为多义线。
     第二步、命令”REGION“ 创建面域
     第三步、进行实体的编辑” SUBTRACT“   用外腔(外层的轮廓)为”减去的实体“
                                                           内腔  为 ”从中减去的实体“
   第四步、 通过工具 查询 面域质量 ”MASSPROP“
回复

使用道具 举报

44

主题

164

帖子

8

银币

后起之秀

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

铜币
340
发表于 2003-8-19 17:39:00 | 显示全部楼层
程序大体思想:
     首先将图形的线段,通过“PEDIT“命令转化为多义线。
     第二步、命令”REGION“ 创建面域
     第三步、进行实体的编辑” SUBTRACT“   用外腔(外层的轮廓)为”减去的实体“
                                                           内腔  为 ”从中减去的实体“
   第四步、 通过工具 查询 面域质量 ”MASSPROP“
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:sccrj1rzlkq.dwg 
下载次数:0  文件大小:21.07 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]


    主要完成 1、”PEDIT“   "J"
                2 ,"REGION"  创建面域  提取了两个环,创建两个面域
                3 SUBTRACT  用实体(外层的) 减  内层的实体
                4 MASSPROP  查询求差集后的面域质量
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-8-20 09:36:00 | 显示全部楼层
转换为面域不需先PEDIT
(defun c:gx (/ a ent1 ent2 ent_tmp)
  (prompt "\n选择转化为多义线的图元")
  (setq a (ssget))
  (command "_.region" a "")
  (prompt "\n选择面域")
  (setq a (ssget))
  (setq ent1 (ssname a 0))
  (setq ent2 (ssname a 1))
  (if (vla-object ent1)) (vla-get-area (vlax-ename->vla-object ent2)))
    (progn
      (setq ent_tmp ent1)
      (setq ent1 ent2)
      (setq ent2 ent_tmp)
    )
  )
  (command "subtract" ent1 "" ent2 "")
  (command "massprop" (entlast) "")
)
回复

使用道具 举报

44

主题

164

帖子

8

银币

后起之秀

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

铜币
340
发表于 2003-8-20 09:57:00 | 显示全部楼层
AUTOCAD 2004 不支持 VLISP 吗?
  no function definition: VLAX-ENAME->VLA-OBJECT
    该函数未定义什么意思?
           应该怎么解决呢?
  
     另外如果图形是多层的,选择的实体不仅限于两个(使用
                 (SETQ  ENT1 (ENTSEL”ENT“))  合适吗?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-8-20 10:06:00 | 显示全部楼层
先加载(vl-load-com)
可以,
不过象我这个选择比较方便些,而且不需要判断哪个是ENT1,哪个是ENT2。
而且ENTSEL选择如果没选对就可能选择空,而且无法取消,必须重新运行
回复

使用道具 举报

44

主题

164

帖子

8

银币

后起之秀

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

铜币
340
发表于 2003-8-20 10:49:00 | 显示全部楼层
你好:
   如果我想只显示结果为
                 惯性矩:    X 值
                                 Y 值
            还应该怎么做呢?
回复

使用道具 举报

44

主题

164

帖子

8

银币

后起之秀

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

铜币
340
发表于 2003-8-20 10:56:00 | 显示全部楼层
你好:
   VL-LOAD-COM 没有找到呀。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 22:05 , Processed in 1.010180 second(s), 88 queries .

© 2020-2025 乐筑天下

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