明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7605|回复: 36

[已解答] 线变矩形加强,线变墙体.

  [复制链接]
发表于 2014-6-17 15:40 | 显示全部楼层 |阅读模式
本帖最后由 鱼与熊掌 于 2014-12-8 13:39 编辑

更新。2014-11.9
重构代码。重新写了一遍。
静默退出。等。自己体会。


支持直线,多段线变成墙体类矩形,方便填充,参照图片.
更新`.` 6.21 完全支持

代码有点乱,不过能工作就好了-.-



本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-3-26 21:21 | 显示全部楼层
楼主第一个代码PL可以转墙体,第二个代码线段和多线段都可以转,第二个功能强大,没明白还想什么功能,望楼主回复,
发表于 2022-4-10 02:14 来自手机 | 显示全部楼层
功能单一了点,如果是墙体,那T型墙体,井字型墙体没有考虑
发表于 2020-8-22 11:19 | 显示全部楼层
  多谢大神分享,学习一下!
发表于 2014-6-17 17:28 | 显示全部楼层
这个应该可以吧!

本帖子中包含更多资源

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

x
 楼主| 发表于 2014-6-17 17:40 | 显示全部楼层
xiaobaixiaobu 发表于 2014-6-17 17:28
这个应该可以吧!

我需要方向,然后需要他是多短线 那么我就可以快速填充
发表于 2014-6-17 18:22 | 显示全部楼层
你表达得有点模糊,目前我没弄懂你要做什么。。。

  1. (defun qdd(ss)
  2. (setq a 1)
  3. (if (not **W**) (setq **W** 1.00))
  4.   (setq **W** (cond((getdist(strcat "\n输入宽度 <"(rtos **W** 2 2) ">: ")))(**W**)))
  5. ;(setq ss (ssget '((0 . "LINE,ARC,LWPOLYLINE,POLYLINE"))))
  6. (setq
  7. ex (ssname ss 0)
  8. ss1 ss
  9. )
  10. ;获取端点列表1
  11. (setq lst (mapcar 'cdr
  12.           (vl-remove-if-not '(lambda (x) (= (car x) 10)) (setq a (entget ex))
  13. )
  14. )
  15. )
  16. (command "offset" **w** ss pause "")
  17. ;获取偏移线点表
  18. (command "ERASE" ss1 "" )
  19. (setq cm (getvar "cmdecho"))
  20. (setvar "cmdecho" 0)
  21. (setq lst2 (mapcar 'cdr
  22.           (vl-remove-if-not '(lambda (x) (= (car x) 10)) (setq a (entget (entlast)))
  23. )
  24. )
  25. )
  26. (command "ERASE" (entlast) "")

  27. (setq lst2 (cons  (nth 0 lst) lst2))
  28. (setq lst1x(reverse lst2))

  29. (setq lscx (append lst lst1x))
  30. ;(setq lscx (list lscx (nth 0 lst)))
  31.   (entmake (append (list '(0 . "LWPOLYLINE")
  32.                          '(100 . "AcDbEntity")
  33.                          '(100 . "AcDbPolyline")
  34.                          (cons 90 (length lscx))
  35.                    )
  36.                    (mapcar '(lambda (pt) (cons 10 pt)) lscx)
  37.            )
  38.   )
  39. (setvar "cmdecho" cm)

  40. (princ "CX-矩形增强版")
  41. )

  42. (defun c:te1()
  43. (setq cm (getvar "cmdecho"))
  44. (setvar "cmdecho" 0)
  45. (setvar "peditaccept" 1) ;加入这个系统变量的代码
  46. (if  (setq KX (ssget '((0 . "LINE,ARC,LWPOLYLINE,POLYLINE"))))
  47. (command "_pedit" "m" KX "" "j" "10" ""))
  48. (command "change" (entlast) "" "p" "co" "1" "")  
  49.   (qdd (ssadd (entlast)))
  50. (setvar "cmdecho" cm)
  51. (princ))
 楼主| 发表于 2014-6-21 14:06 | 显示全部楼层
edata 发表于 2014-6-17 18:22
你表达得有点模糊,目前我没弄懂你要做什么。。。

        我这个代码已经实现了 直线变成矩形,和多短线变成矩形的功能.
    利用的就是把偏移线的点表提取出来,然后重新生成多段线,这样就可以方便填充了.
       现在还没完善的是  如果选多条连在一起的线 ,那么我要把他先变成多段线,然后在偏移出来.  
  代码没什么难度,我自己写写就好了`.`
发表于 2014-11-6 03:03 来自手机 | 显示全部楼层
真不错明天来下,感谢
发表于 2014-11-6 23:48 | 显示全部楼层
程度很不错,但每次结束都有这个消息出来

选择对象:  未知命令“QDD”。按 F1 查看帮助。
未知命令“QDD”。按 F1 查看帮助。
发表于 2014-11-6 23:49 | 显示全部楼层
未知命令“QDD”。按 F1 查看帮助。
CX-矩形增强版"CX-矩形增强版"
 楼主| 发表于 2014-11-8 18:28 | 显示全部楼层
hooboxu 发表于 2014-11-6 23:48
程度很不错,但每次结束都有这个消息出来

选择对象:  未知命令“QDD”。按 F1 查看帮助。

  有空修复一下。
 楼主| 发表于 2014-11-9 18:56 | 显示全部楼层
hooboxu 发表于 2014-11-6 23:48
程度很不错,但每次结束都有这个消息出来

选择对象:  未知命令“QDD”。按 F1 查看帮助。

已经更新了一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 02:20 , Processed in 0.248297 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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