找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 953|回复: 0

[编程申请] 奥维导出cad以后,如何只标注管径(在点名中提取字符)和折点数以及长度

[复制链接]

已领礼包: 50个

财富等级: 招财进宝

发表于 2019-8-29 12:18:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 君是我的泪 于 2020-1-19 13:44 编辑

请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:角度计算.xls 
下载次数:0  文件大小:21.5 KB 
下载权限: 不限 以上  [免费赚D豆]

请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:数据处理.xls 
下载次数:0  文件大小:35 KB 
下载权限: 不限 以上  [免费赚D豆]

请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:正则源数据.xls 
下载次数:0  文件大小:19 KB 
下载权限: 不限 以上  [免费赚D豆]


里面还用到了坐标正算,反算,不懂得可以问我 未命名.JPG

吧kml导入excel或者用记事本打开,然后html正则<name>.*?</name><name>[^<]*?</name>
,如何获取标注那一点的坐标,可否在中间取点,并在CAD上标记展绘 管线长度、井数、管径

经过一系列 的简单操作获得了以下表格。

把文字展放在两点的中 点,并保持一定 斜率的倾角即可,例如如下
   序号      起点Y                      起点X                       终点Y                  终点X                标注管径
  
1
  
3341116.1343
560940.6254
3340875.9075
561209.5438
DN100
  
2
  
3337919.0739
559559.4263
3337886.9929
559598.6118
DN200
  
3
  
3337763.1090
559451.8336
3337705.2784
559521.5864
DN300
  
4
  
3337625.7966
559607.2325
3337548.2722
559687.5938
DN400
  
5
  
3337383.2710
559443.5755
3337422.7380
559472.7949
DN500

或者中点,角度,字高可随意
角度           标注点位X    标注点位Y       序号   备注
48.22535
561075.1
3340996
1
   
  DN800
   
50.69296
559579
3337903
2
DN300
50.33858
559486.7
3337734
3
DN400
46.02938
559647.4
3337587
4
   
  DN300
   
143.4856
559458.2
3337403
5
DN400

excel格式第一列序号,第二列X,第三列Y,角度,备注。第一行为1号,无标题栏
by 平

(defun c:xwz ()
    (vl-load-com)
    (setvar "cecolor" "bylayer")
    (defun Excel-Get-CellValue (xl cell)
        (setq xlsval (vlax-variant-value (vlax-get-property (vlax-get-property xl "range" cell) "Value"))))
;;;    (setq fl "C:\\Users\\dell\\Desktop\\www.xls" )
    (setq fl (getfiled "选择EXCEL文件" "" "xls;xlsx" 8))
    (if        (setq fn (findfile fl))
        (if (setq xl (vlax-get-or-create-object "Excel.Application"))
            (progn
                (vlax-invoke-method (vlax-get-property xl 'WorkBooks) 'Open fn)
                (setq row 1)
                (setq h (getreal "输入字高"))
                (while (Excel-Get-CellValue xl (strcat "B" (rtos row)))
                    (setq x (Excel-Get-CellValue xl (strcat "B" (rtos row)))
                          y (Excel-Get-CellValue xl (strcat "c" (rtos row)))
                          j (Excel-Get-CellValue xl (strcat "d" (rtos row)))
                          l (Excel-Get-CellValue xl (strcat "e" (rtos row))))
                    (if (> j 90) (setq j (+ j 180)))
                    (setq j (* (/ j 180) pi))
                    (entmake (list '(0 . "TEXT")'(100 . "AcDbEntity")'(100 . "AcDbText")(list 10 x y 0.0)
                                   (cons 40 h)(cons 1 l)(cons 50 j)'(41 . 0.800)'(100 . "AcDbText")))
                    (setq row (1+ row)))
                (vlax-invoke-method xl 'quit)
                (vlax-release-object xl)
                );progn
            );if
        );if
    (princ)
    )
(prompt "选择EXCEL文件写文字,命令xwz")(princ)




论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-19 21:11 , Processed in 0.188170 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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