设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2300|回复: 47

[源码] 二维多段线换向(反向)程序

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-3-30 09:21:04 | 显示全部楼层 |阅读模式

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

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

x
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;二维多段线换向(反向)程序 1.0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                                                                                     ;;
  2. ;;   1、本程序的功能为:二维多段线换向(反向),只针对带有高程的二维多段线。            ;;
  3. ;;                                                                                     ;;
  4. ;;   2、程序主命令为"plr",在命令行中输入"plr"按提示使用即可。                          ;;
  5. ;;                                                                                     ;;
  6. ;;   3、程序要求必须全部为带高程的二维多段线,否则程序会出错!!!。                      ;;
  7. ;;                                                                                     ;;
  8. ;;   4、如果选择的不全是带高程的二维多段线,请用pl32程序把三维多段线转换为带高程       ;;
  9. ;;      的二维多段线,其它情况请自己想办法。                                           ;;
  10. ;;                                                                                     ;;
  11. ;;   5、用户使用此程序前请做好备份!                                                    ;;
  12. ;;                                                                      2011.8.10      ;;
  13. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  14. ;
  15. ;
  16. ;
  17. (defun c:plr()                             ;程序名为plr,把三维多段线转换为带高程的二维多段线,
  18.                                            ;
  19.   (VL-LOAD-COM)                            ;必要的加载函数
  20.                                            ;        
  21.   (setq AcadObject (vlax-get-acad-object))
  22.   (setq AcadDocument (vla-get-ActiveDocument Acadobject))
  23.   (setq mSpace (vla-get-ModelSpace Acaddocument))          ;此三行的作用是可以修改CAD文件了。


  24.   (prompt "\n <<请框选带高程的二维多段线>>")
  25.   (setq ss (ssget '((0 . "POLYLINE"))))           ;取得选择集。
  26.   (setq n 0 k 0)              ;选择集的起始值n=0,完成更改的多段线数k=0。
  27.   (repeat (sslength ss)       ;计算选择集的对象个数。
  28.     (setq en (ssname ss n))   ;依据索引值取出选择集中的图元名。
  29.           (reversepl en)      ;调用对二维多段线进行换向的子函数,此函数为执行函数。
  30.           (setq k (1+ k))     ;换向完成的线数,完成一个加一。
  31.           (setq n (1+ n))     ;
  32.   )
  33. (princ (strcat "\n 共有< " (itoa k) " >条二维多段线完成换向。" ))
  34. (prin1)
  35. )
  36.   (defun reversepl (ename)                                             ;考虑完全的标注高程文字的子函数。
  37.       (setq obj (vlax-ename->vla-object ename))                        ;把ename转换为vlax对象。
  38.       (setq varnil1 (vlax-make-variant -1  11))                        ;新建立一个vlax下的布尔型变量,11表示布尔型变量,-1表示为真。
  39.          (if (= (vlax-variant-value varnil1)  (vla-get-closed obj))    ;如果原来obj三维多段线是闭合的,则执行下面一句,目的是为了对圆形多段线标注。
  40.              (progn
  41.                    (vla-put-closed obj 0)                              ;使二维多段线先不闭合。            
  42.                    (reversepl_exe obj)                                 ;调子函数。
  43.                    (vla-put-closed polylineobj -1)                     ;使二维多段线再闭合。
  44.                    (vlax-release-object polylineobj)                   ;释放变量值。
  45.              )
  46.              (progn
  47.                    (reversepl_exe obj)                                 ;调子函数。
  48.                    (vlax-release-object polylineobj)                   ;释放变量值。
  49.              )
  50.          )
  51.    )  



;reversepl_exe 对二维多段线进行换向的子函数。

游客,如果您要查看本帖隐藏内容请回复

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

已领礼包: 6521个

财富等级: 富甲天下

发表于 2016-3-30 09:34:42 | 显示全部楼层
为什么不用acad自己的命令?
傲游截图20160330093058.png

点评

reverse命令是从哪个CAD版本开始提供的?  详情 回复 发表于 2016-3-30 10:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

 楼主| 发表于 2016-3-30 10:19:30 | 显示全部楼层
ll_j 发表于 2016-3-30 09:34
为什么不用acad自己的命令?

reverse命令是从哪个CAD版本开始提供的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6521个

财富等级: 富甲天下

发表于 2016-3-30 11:02:24 | 显示全部楼层
newer 发表于 2016-3-30 10:19
reverse命令是从哪个CAD版本开始提供的?

reverse是新命令,刚才找几个人试了一下,2012才开始有,不过也好多年了。
convertpoly是很早版本就有的命令,应该是和轻多段线同时就有的,只是那时候是隐含命令,帮助文件查不到。

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

使用道具 举报

已领礼包: 5551个

财富等级: 富甲天下

发表于 2016-3-30 11:06:57 | 显示全部楼层
感谢版主为我们提供学习资料
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 7302个

财富等级: 富甲天下

发表于 2016-3-30 14:36:36 | 显示全部楼层
感谢 newer 版主分享程序!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-3-30 18:45:57 来自手机 | 显示全部楼层
好像比我写的那个简洁
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3198个

财富等级: 富可敌国

发表于 2016-3-30 19:17:33 | 显示全部楼层
换向后能有什么作用呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 717个

财富等级: 财运亨通

发表于 2016-4-5 19:18:13 | 显示全部楼层
学习了     谢谢楼主了           
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 14个

财富等级: 恭喜发财

发表于 2016-5-23 15:08:15 | 显示全部楼层
reverse  还真没用过这个命令
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-8-17 17:50:15 | 显示全部楼层
:lol:lol:lol;P
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1063个

财富等级: 财源广进

发表于 2016-8-19 09:56:48 | 显示全部楼层
本帖最后由 279491611 于 2016-8-19 10:03 编辑

谢谢分享。要是能扩展一下(reverse)就更完美了。比如有时候用到,根据X或Y或Z坐标判断反向。比如统一为Z坐标小的为起点。当然主要是能批量操作3维直线,或3维多段线。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-8-19 11:12:37 | 显示全部楼层
强制灌水。。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2016-8-19 11:32:43 | 显示全部楼层
换向后丢失bluge,丢失起止宽度。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 86个

财富等级: 招财进宝

发表于 2016-8-19 22:34:35 | 显示全部楼层
有时候cad自带的不能转向,不知道这个怎么样呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2020-8-6 07:08 , Processed in 0.262083 second(s), 99 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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