明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1708|回复: 11

[已解答] 批量改标注为直线还有CAD版本的椭圆问题

[复制链接]
发表于 2014-2-28 15:40 | 显示全部楼层 |阅读模式
想请教大师

能不能批量选择标注后

把标注的起点到终点改为直线

我的想法,选择时取得标注线的两端点,再线出直线,再删除原标注

这主要用于按原样画出下料图的外形





本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2014-2-28 15:44 | 显示全部楼层
还有一个问题,是在碰巧时
在黑暗中碰到原因的
CAD2010以下版本(如2004,2008)中的椭圆个别尺寸下(如260X90)
在等分双数时,多数情况都会出错
改为单数等分或略改椭圆尺寸后也不会出错
而到2010或以上版本时,就不会出错了



本帖子中包含更多资源

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

x
发表于 2014-2-28 23:22 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2014-3-2 07:25 编辑

游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0
 楼主| 发表于 2014-3-1 12:53 | 显示全部楼层
ZZXXQQ 发表于 2014-2-28 23:22
[/post]

发自内心的感谢ZZXXQQ
高尚无比的朋友精神
超一流的程序水平
你的存在
让明经永存我心
发表于 2014-3-1 20:05 | 显示全部楼层
ynhh 发表于 2014-3-1 12:53
发自内心的感谢ZZXXQQ
高尚无比的朋友精神
超一流的程序水平

板凳又改了,再试试。
 楼主| 发表于 2014-3-1 21:30 | 显示全部楼层
ZZXXQQ 发表于 2014-3-1 20:05
板凳又改了,再试试。

ZZXXQQ大师
你太好了。
内心对你这样
高技术
高情操
高风格
感激之情,无也言表
 楼主| 发表于 2014-3-1 21:50 | 显示全部楼层
ZZXXQQ 发表于 2014-2-28 23:22
[/post]

再向大师反映一个问题
第二次优化程序对有的全尺寸图有错误
这一句
(70 . 33) (3 . "140843")
就不用了,因各种图的设置不一样
请大师再看看,都是全部尺寸的图能不能
也达到一步取出外形的功能?



本帖子中包含更多资源

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

x
发表于 2014-3-1 23:04 | 显示全部楼层
参照ZZXXQQ老师的改的
(defun c:tt ()
(setvar "CMDECHO" 0)
(setq pt1 (getpoint "\n窗选第一角点: "))
(setq pt2 (getcorner pt1 "\n另一角点:"))
(if (setq ss (ssget "W" pt1 pt2 '((0 . "DIMENSION") ))) (progn
  (setq i -1 ents nil)
  (repeat (sslength ss)
   (setq ent (entget(ssname ss (setq i (1+ i)))))
   (setq ents (cons (entmake(list '(0 . "LINE") (assoc 10 ent) (cons 11 (cdr(assoc 13 ent))) (assoc 8 ent))) ents))
   (entdel (ssname ss i))
  )
  (setq ss (ssget "W" pt1 pt2))
  (command "_.REGION" ss "")
  (setq ss1 (ssget "W" pt1 pt2 '((0 . "REGION")))
        pl  (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss1)))
        aa  (vl-sort pl (function (lambda (e1 e2 )(> (Vlax-Get (Vlax-Ename->Vla-Object e1) 'Area) (Vlax-Get (Vlax-Ename->Vla-Object e2) 'Area))))))
  (foreach x (cdr aa) (entdel x))
  (command "_.ERASE" (ssget "W" pt1 pt2 '((0 . "*LINE"))) "")
  (command "_.EXPLODE" (car aa) "_.PEDIT" "M" "P" "" "Y" "J" "" "")
))
(setvar "CMDECHO" 1)
(princ)
)

点评

变量ents有何作用?  发表于 2014-3-2 07:28
发表于 2014-3-2 07:29 | 显示全部楼层
ynhh 发表于 2014-3-1 21:50
再向大师反映一个问题
第二次优化程序对有的全尺寸图有错误
这一句

板凳又改了。
 楼主| 发表于 2014-3-2 12:02 | 显示全部楼层
本帖最后由 ynhh 于 2014-3-2 12:20 编辑
cable2004 发表于 2014-3-1 23:04
参照ZZXXQQ老师的改的
(defun c:tt ()
(setvar "CMDECHO" 0)

你这个强,比ZZXXQQ大师的能正常显示
ents nil
                  (function (lambda (e1 e2)
                              (> (Vlax-Get (Vlax-Ename->Vla-Object e1) 'Area)
                                 (Vlax-Get (Vlax-Ename->Vla-Object e2) 'Area)
                              )
                            )
                  )
                )
      )
      (foreach x (cdr aa) (entdel x))
我反得学习对比感觉你是增加了一些内容
你太牛了
真心的感谢你的指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 02:54 , Processed in 0.250809 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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