明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 567|回复: 3

[提问] 求助各位大佬二维平面曲线展开立面并生成曲线里面文件的中心线

[复制链接]
发表于 2020-9-24 12:09 | 显示全部楼层 |阅读模式
30明经币
1:选择需要展开的曲线
2:设置生成平面高度:
2:选择需要识别中心的文件(生成中心线高度为生成的平面高度)
3:单击生成展开曲线的点
4:操作完成

求助各位大神,请问有没有这样的插件,或者有大神可以有空并且愿意帮助的,小弟在此感谢,以下是论坛中大神的的代码,不知道能不能派上用场


以下代码是 鱼与熊掌 大神写的
;线变矩形
(defun c:Qw(/ ss en1 en2 en3 en4 lst lst1 lst2 pt)
  (cxsta)
  (prompt "直线变墙增强版本.by 鱼与熊掌2014.11.11\n")
  (if (not **W**) (setq **W** 120.00))
(setq **W** (cond((getdist(strcat "\n输入宽度 <"(rtos **W** 2 2) ">: ")))(**W**)))
  (if
  (setq ss (ssget '((0 . "LINE,ARC,LWPOLYLINE,POLYLINE"))))
  (progn
  (setq ss(cx-line-pline ss))
  (setq en1 (ssname ss 0))
  (setq lst1(cx-db en1))
  (if (setq pt (getpoint "点击要偏移的那一侧\n"))
    (progn
  (vl-cmdf "offset" **w** en1 "_non" pt "")
  (setq en2 (entlast))
  (setq lst2 (cx-db en2))
  (cx-line (xnth 0 lst1) (xnth 0 lst2))
  (setq en3 (entlast))
  (cx-line (xnth (1- (length lst1)) lst1)(xnth (1- (length lst2)) lst2))
  (setq en4 (entlast))
  (setq ss (ssadd))
  (setq ss (ssadd en1 ss))
  (setq ss (ssadd en2 ss))
  (setq ss (ssadd en3 ss))
  (setq ss (ssadd en4 ss))
  (setvar "peditaccept" 1)
  (command "_.pedit" "m" ss "" "j" "0.01" "")
  ;(cx-line-pline ss)
  ;(entdel en1)(entdel en2)
  ;(setq lst2(reverse lst2))
  ;(setq lst (append lst1 lst2))
  ;(cx-pline lst 1)
  ))))
  (cxend)
  )

以下代码的出处忘记了,请大神见量
;画中心线
(defun c:cl ()
   (setvar "cmdecho" 0)
   (setq os_old (getvar "osmode"))
   (setq cl_old (getvar "clayer"))
   (setvar "osmode" 0)
   (command "ucs" "")
;-----------------------------------------------------------------------------------------
   (if (not (tblsearch "layer" "cen"))
       (command "_.layer" "_new" "cen" "_color" "1" "cen" "_ltype" "center" "cen" "")
       (command "_.layer" "thaw" "cen" "on" "cen" "unlock" "cen" "")
   )
;------------------------------------------------------------------------------------------
  (setq a1 (entsel "\n请选定要画中心线的圆\\圆弧\\直线:"))
  (while (null a1)
       (setq a1 (entsel "\n请选定要画中心线的圆\\圆弧\\直线:"))
  )
  (setq a2 (entget (car a1)))
  (setq l1 (assoc 0 a2))
  (setq l2 (cdr l1))
  (while (and (/= l2 "LINE") (/= l2 "ARC") (/= l2 "CIRCLE"))
         (setq a1 (entsel "\n所选的不是圆\\圆弧\\直线:"))
         (while (null a1)
            (setq a1 (entsel "\n请选定要画中心线的圆\\圆弧\\直线:"))
         )
         (setq pt1 (cadr a1))
         (setq a2 (entget (car a1)))
         (setq l1 (assoc 0 a2))
         (setq l2 (cdr l1))
  )
  (if (or (= l2 "ARC") (= l2 "CIRCLE"))
      (progn
          (setq b1 (cdr (assoc 10 a2)))  ;圆心座标
          (setq b2 (cdr (assoc 40 a2)))  ;圆半径
          (setvar "clayer" "cen")
          (command "line" (list (- (car b1) (* b2 1.2)) (cadr b1)) (strcat "@" (rtos (* b2 2.4))
                          "<0") "")
          (command "array" "l" "" "p" b1 "2" "90" "")
      )
   )
  (if (or (= l2 "LINE"))
      (progn
          (setq a3 (entsel "\n请选定另一直线:"))
          (while (null a3)
                 (setq a3 (entsel "\n请选定另一直线:"))
          )
          (setq a4 (entget (car a3)))
          (setq end1 (cdr (assoc 10 a2)))
          (setq end2 (cdr (assoc 11 a2)))
          (setq end3 (cdr (assoc 10 a4)))
          (setq end4 (cdr (assoc 11 a4)))
          (setq e1 (distance end1 end3))
          (setq e2 (distance end1 end4))
          (if (< e1 e2)
             (progn
              (setq end5 (list (/ (+ (car end1) (car end3)) 2.0) (/ (+ (cadr end1) (cadr end3)) 2.0)))
              (setq end6 (list (/ (+ (car end2) (car end4)) 2.0) (/ (+ (cadr end2) (cadr end4)) 2.0)))
             )
             (progn
              (setq end5 (list (/ (+ (car end1) (car end4)) 2.0) (/ (+ (cadr end1) (cadr end4)) 2.0)))
              (setq end6 (list (/ (+ (car end2) (car end3)) 2.0) (/ (+ (cadr end2) (cadr end3)) 2.0)))
             )
          )
          (setq end5_1 (polar end5 (angle end6 end5) 10))
          (setq end6_1 (polar end6 (angle end5 end6) 10))
          (setvar "clayer" "cen")
          (command "line" end5_1 end6_1 "")
      )
   )
   (setvar "osmode" os_old)
   (setvar "clayer" cl_old)
   (princ)
)

附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2020-12-2 16:33 | 显示全部楼层
请上传CAD文档
回复

使用道具 举报

 楼主| 发表于 2020-12-3 10:04 | 显示全部楼层

您好,,我这边试了一下,,传不了,,下次我再试一下,谢谢您了
回复

使用道具 举报

发表于 2020-12-10 13:24 | 显示全部楼层
估计是同行吧:D
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 16:00 , Processed in 0.341156 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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