明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1840|回复: 13

[讨论] 期待高手指点,一个非常奇怪的问题

[复制链接]
发表于 2013-5-16 14:41 | 显示全部楼层 |阅读模式
本帖最后由 sicky111 于 2013-5-16 16:47 编辑

这段程式在2004、2012、2013下测试都没有问题;在2008下测试,到了trim那里会出问题,程式不能继续运行下去,但是在2008下单节测试时又是OK的,非常奇怪,研究了两天,都没办法找出症结所在,请求高手指点一下。
  1. (defun c:tt ()
  2.   (vl-load-com)
  3.   (setq osm (getvar "osmode"))
  4.   (setvar "osmode" 0)
  5.   (setvar "CMDECHO" 0)
  6.   (setq ent (car (entsel "\n选择一个物体:")))
  7.   (tt_main)
  8.   (command ".rectang" "none" pt1 "none" pt2)
  9.   (setq obj (vlax-ename->vla-object (entlast)))
  10.   (vla-offset obj 5)
  11.   (vla-delete obj)
  12.   (setq ent (entlast))
  13.   (tt_main)
  14.   (setq pt3 (polar pt1 0 a)
  15.         pt4 (polar pt2 pi a)
  16.   )
  17.   (command ".fillet" "R" 3 ".fillet" "P" "L")
  18.   (command ".trim" "L" "" (polar pt2 (* pi 1.25) 1.2426) "")
  19.   (command ".line" (polar pt2 pi 3) (polar pt2 (* pi 1.5) 3) "")
  20.   (command ".pedit"  ent "J" (entlast) "" "")
  21.   (setvar "osmode" osm)
  22.   (setvar "CMDECHO" 1)
  23.   (princ)
  24. )

  25. (defun xd_GetObjectBoundingBox (ename / ll ur)
  26.   (vla-GetBoundingBox (vlax-ename->vla-object ename) 'll 'ur)
  27.   (list
  28.     (vlax-safearray->list ll)
  29.     (vlax-safearray->list ur)
  30.   )
  31. )

  32. (defun tt_main ()
  33.   (setq pt (xd_GetObjectBoundingBox ent)
  34.         pt1 (car pt)
  35.         pt2 (cadr pt)
  36.         mpt (mapcar '(lambda (a b) (/ (+ a b) 2)) pt1 pt2)
  37.         a (fix (abs (- (car pt1) (car pt2))))
  38.         b (fix (abs (- (cadr pt1) (cadr pt2))))
  39.         pt1 (polar (polar mpt pi (* a 0.5)) (* pi 1.5) (* b 0.5))
  40.         pt2 (polar (polar mpt 0 (* a 0.5)) (* pi 0.5) (* b 0.5))
  41.   )
  42. )
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-5-16 15:15 | 显示全部楼层
aa值从那来?

点评

不好意思,笔误,是a值,多写了一个a。  发表于 2013-5-16 16:46
 楼主| 发表于 2013-5-16 16:47 | 显示全部楼层
gzxl 发表于 2013-5-16 15:15
aa值从那来?

已经改正过来了,请高手再看看,是哪里出了问题。
发表于 2013-5-18 22:05 | 显示全部楼层
不知您说的是什么问题?
在2008下运行
(command ".trim" "L" "" (polar pt2 (* pi 1.25) 1.2426) "")
=> (command ".trim" "L" (polar pt2 (* pi 1.25) 1.2426) "")
试试
发表于 2013-5-20 16:36 | 显示全部楼层
不知您说的是否如下问题?
2008运行通过
(command ".trim" "L" "" (polar pt2 (* pi 1.25) 1.2426) "")
=> (command ".trim" "L" (polar pt2 (* pi 1.25) 1.2426) "")
 楼主| 发表于 2013-5-20 19:51 | 显示全部楼层
461045462 发表于 2013-5-20 16:36
不知您说的是否如下问题?
2008运行通过
(command ".trim" "L" "" (polar pt2 (* pi 1.25) 1.2426) "")
...

谢谢,还是不行,不能修剪。
发表于 2013-5-20 21:22 | 显示全部楼层
这样试试:
(command ".trim" "L" "" "nea" (polar pt2 (* pi 1.25) 1.2426) "")
 楼主| 发表于 2013-5-21 00:54 | 显示全部楼层
ZZXXQQ 发表于 2013-5-20 21:22
这样试试:
(command ".trim" "L" "" "nea" (polar pt2 (* pi 1.25) 1.2426) "")

谢谢Z版,试过了,还是不行,就是剪不下去,在2004和2012版都可以的,不知道2008怎么试都不行,可能是版本的原因吧。
发表于 2013-5-21 08:33 | 显示全部楼层
另一个办法就是将线条炸开,删除指定圆弧再用PEDIT联接封闭线条。
 楼主| 发表于 2013-5-21 10:43 | 显示全部楼层
ZZXXQQ 发表于 2013-5-21 08:33
另一个办法就是将线条炸开,删除指定圆弧再用PEDIT联接封闭线条。

谢谢指点,我试看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-1 22:48 , Processed in 0.182191 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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