鱼与熊掌 发表于 2014-6-17 15:40:48

线变矩形加强,线变墙体.

本帖最后由 鱼与熊掌 于 2014-12-8 13:39 编辑

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


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

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



00放飞梦想00 发表于 2020-3-26 21:21:22

楼主第一个代码PL可以转墙体,第二个代码线段和多线段都可以转,第二个功能强大,没明白还想什么功能,望楼主回复,

qazxswk 发表于 2022-4-10 02:14:56

功能单一了点,如果是墙体,那T型墙体,井字型墙体没有考虑

电赛加油 发表于 2020-8-22 11:19:11

多谢大神分享,学习一下!

xiaobaixiaobu 发表于 2014-6-17 17:28:30

这个应该可以吧!

鱼与熊掌 发表于 2014-6-17 17:40:42

xiaobaixiaobu 发表于 2014-6-17 17:28 static/image/common/back.gif
这个应该可以吧!

我需要方向,然后需要他是多短线 那么我就可以快速填充

edata 发表于 2014-6-17 18:22:48

你表达得有点模糊,目前我没弄懂你要做什么。。。

(defun qdd(ss)
(setq a 1)
(if (not **W**) (setq **W** 1.00))
(setq **W** (cond((getdist(strcat "\n输入宽度 <"(rtos **W** 2 2) ">: ")))(**W**)))
;(setq ss (ssget '((0 . "LINE,ARC,LWPOLYLINE,POLYLINE"))))
(setq
ex (ssname ss 0)
ss1 ss
)
;获取端点列表1
(setq lst (mapcar 'cdr
          (vl-remove-if-not '(lambda (x) (= (car x) 10)) (setq a (entget ex))
)
)
)
(command "offset" **w** ss pause "")
;获取偏移线点表
(command "ERASE" ss1 "" )
(setq cm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq lst2 (mapcar 'cdr
          (vl-remove-if-not '(lambda (x) (= (car x) 10)) (setq a (entget (entlast)))
)
)
)
(command "ERASE" (entlast) "")

(setq lst2 (cons(nth 0 lst) lst2))
(setq lst1x(reverse lst2))

(setq lscx (append lst lst1x))
;(setq lscx (list lscx (nth 0 lst)))
(entmake (append (list '(0 . "LWPOLYLINE")
                         '(100 . "AcDbEntity")
                         '(100 . "AcDbPolyline")
                         (cons 90 (length lscx))
                   )
                   (mapcar '(lambda (pt) (cons 10 pt)) lscx)
         )
)
(setvar "cmdecho" cm)

(princ "CX-矩形增强版")
)

(defun c:te1()
(setq cm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "peditaccept" 1) ;加入这个系统变量的代码
(if(setq KX (ssget '((0 . "LINE,ARC,LWPOLYLINE,POLYLINE"))))
(command "_pedit" "m" KX "" "j" "10" ""))
(command "change" (entlast) "" "p" "co" "1" "")
(qdd (ssadd (entlast)))
(setvar "cmdecho" cm)
(princ))

鱼与熊掌 发表于 2014-6-21 14:06:57

edata 发表于 2014-6-17 18:22 static/image/common/back.gif
你表达得有点模糊,目前我没弄懂你要做什么。。。

      我这个代码已经实现了 直线变成矩形,和多短线变成矩形的功能.
    利用的就是把偏移线的点表提取出来,然后重新生成多段线,这样就可以方便填充了.
       现在还没完善的是如果选多条连在一起的线 ,那么我要把他先变成多段线,然后在偏移出来.
代码没什么难度,我自己写写就好了`.`

hooboxu 发表于 2014-11-6 03:03:14

真不错明天来下,感谢

hooboxu 发表于 2014-11-6 23:48:37

程度很不错,但每次结束都有这个消息出来

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

hooboxu 发表于 2014-11-6 23:49:37

未知命令“QDD”。按 F1 查看帮助。
CX-矩形增强版"CX-矩形增强版"

鱼与熊掌 发表于 2014-11-8 18:28:41

hooboxu 发表于 2014-11-6 23:48 static/image/common/back.gif
程度很不错,但每次结束都有这个消息出来

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


有空修复一下。

鱼与熊掌 发表于 2014-11-9 18:56:02

hooboxu 发表于 2014-11-6 23:48 static/image/common/back.gif
程度很不错,但每次结束都有这个消息出来

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


已经更新了一下。
页: [1] 2 3 4
查看完整版本: 线变矩形加强,线变墙体.