明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: wjl1014

[资源] 批量选择图元(多段线、直线、样条曲线、圆弧)转换成多段线

  [复制链接]
发表于 2013-4-6 16:49:46 | 显示全部楼层
测试了下,还是可以的。。。
发表于 2013-4-6 17:27:04 | 显示全部楼层
支持!!!!!
发表于 2013-4-6 23:44:15 来自手机 | 显示全部楼层
好东西,顶一下!!
发表于 2013-4-8 09:38:05 | 显示全部楼层
上边一段源码对SPLINE无效
发表于 2013-4-8 14:50:19 | 显示全部楼层
7楼的是钮广春整理
发表于 2013-4-8 23:29:08 | 显示全部楼层
没啥用,白白浪费了我的明币呀
发表于 2013-4-9 11:54:05 | 显示全部楼层
缺点:点太密!后期处理不方便.期待修改.
发表于 2013-4-10 10:35:38 | 显示全部楼层
命令: pp
选择对象: 指定对角点: 找到 4 个
选择对象:
开始循环SPLINE
开始分类……
分类完成ss1对象数=1ss2对象数=0LINE
开始分类……
分类完成ss1对象数=1ss2对象数=1LWPOLYLINE
开始分类……
分类完成ss1对象数=1ss2对象数=2ARC
开始分类……
分类完成ss1对象数=1ss2对象数=3_pedit 选择多段线或 [多条(M)]: m
选择对象:   找到 4 个
选择对象:
输入选项
[闭合(C)/打开(O)/合并(J)/宽度(W)/拟合(F)/样条曲线(S)/非曲线化(D)/线型生成(L)/放
弃(U)]: 99
无效的选项关键字。
; 错误: 函数被取消
发表于 2013-4-10 13:44:52 | 显示全部楼层
顶一下,很好
发表于 2013-4-10 15:02:49 | 显示全部楼层
(defun c:ccc ()
  (setq pp3 (getpoint "\n输入AA区的左上角点:"))
  (setq pp4 (getcorner pp3"\n输入AA区的右下角点:"))
  (setq tx (getint "输入tx:"))
  (setq rx (getint "输入rx:"))
  (setq aa (getint "输入正面ITO的出线位置  1.左边;2.右边"))
  (if (= aa 1)
      (setq bb 0.4)
      (setq bb 0)
  )
  (setq ll (- (car pp4) (car pp3)))
  (setq ww (- (cadr pp3) (cadr pp4)))
  (setq px (/ ll tx))
  (setq py (/ ww rx))
     (setq a1 (list (+ (car pp3) 0.2) (cadr pp3)))
     (setq a2 (list (+ (car pp3) 0.2) (cadr pp4)))
     (setq a3 (list (+ (car pp3) (- px 0.2)) (cadr pp4)))
     (setq a4 (list (+ (car pp3) (- px 0.2)) (cadr pp3)))
     (setq a5 (list (+ (car pp3) (+ (/ px 2) 2)) (cadr pp4)))
     (setq a6 (list (+ (car pp3) (+ (/ px 2) 2)) (- (cadr pp4) 0.4)))
     (setq a7 (list (+ (car pp3) (- (/ px 2) 2)) (- (cadr pp4) 0.4)))
     (setq a8 (list (+ (car pp3) (- (/ px 2) 2)) (cadr pp4)))
     (setq oldmode (getvar "osmode"))
     (setvar "OsMode" 0)
     (command "pline" "0,0" "w" 0.0 0.0 "")
     (command "-layer" "m" "bmk" "")
     (command "-layer" "lw" "0" "bmk" "")
     (command "pline" a1 a2 a8 a7 a6 a5 a3 a4 "c")
     (setq cc1 (entlast))
     (command "array" cc1 "" "r" 1 tx px)
     (setvar "osmode" oldmode)

     (setq recl1 (/ (- px 0.9) 4))
     (setq recl2 (/ (- px 1.5) 3))
     (setq recw1 (/ (- py 2.1) 3))
     (setq recw2 (/ (+ py 1.5) 3))
     (setq recw3 (/ (- py 1.5) 3))
     (setq b1 (list (car pp3) (- (cadr pp3) 0.15)))
     (setq b2 (polar b1 (* pi 1.5) recw1))
     (setq b4 (polar b1 0 recl1))
     (setq b3 (polar b4 (* pi 1.5) recw1))
  ;qidian
     (setq b5 (polar b1 0 (+ recl1 0.3)))
     (setq b6 (polar b5 0 (+ recl1 0.3)))
  ;changgezi
     (setq b7 (polar b6 0 (+ recl1 0.3)))
     (setq b8 (polar b7 (* pi 1.5) recw1))
     (setq b10 (polar b7 0 (* recl1 2)))
     (setq b9 (polar b10 (* pi 1.5) recw1))
  ;qidian
     (setq b11 (polar b10 0 0.3))
  
  ;dierhang
     (setq c1 (list (- (car b2) bb) (- (cadr b2) 0.3)))
     (setq c2 (polar c1 (* pi 1.5) recw2))
     (setq c4 (polar c1 0 (+ ll 0.4)))
     (setq c3 (polar c4 (* pi 1.5) recw2))
  ;zhongjian
     (setq d1 (list (+ (car b1) 0.3) (- (cadr c1) 0.5)))
     (setq d2 (polar d1 (* pi 1.5) recw3))
     (setq d4 (polar d1 0 (* recl1 2)))
     (setq d3 (polar d4 (* pi 1.5) recw3))
     (setq d5 (polar d4 0 0.3))
     (setq d6 (polar d5 (* pi 1.5) recw3))
     (setq d8 (polar d5 0 (- px 0.3)))
     (setq d7 (polar d8 (* pi 1.5) recw3))
  ;zuizhongjian
     (setq e1 (list (+ (car d1) 0.3) (- (cadr d1) 0.3)))
     (setq e2 (polar e1 (* pi 1.5) (- recw3 0.6)))
     (setq e4 (polar e1 0 (- (* recl1 2) 0.6)))
     (setq e3 (polar e4 (* pi 1.5) (- recw3 0.6)))
     (setq e5 (polar e4 0 0.9))
     (setq e6 (polar e5 (* pi 1.5) (- recw3 0.6)))
     (setq e8 (polar e5 0 recl2))
     (setq e7 (polar e8 (* pi 1.5) (- recw3 0.6)))
  
     (setq e9 (polar e5 0 (+ recl2 0.3)))
     (setq e10 (polar e9 0 (+ recl2 0.3)))

     (setq f1 (list (car b2) (- (cadr c2) 0.3)))
     (setq f2 (- ll (+ (* recl1 2) 0.3)))
     (setq f3 (- 0 py))
     (setq f4 (- ll (* recl1 2) 0.6))
     (setq f5 (- tx 1))
     (setvar "OsMode" 0)
     (command "-layer" "m" "umk" "")
     (command "-layer" "lw" "0" "umk" "")
     (command "pline" b1 b2 b3 b4 "c")
     (setq cc2 (entlast))
     (command "copy" cc2 "" b1 b5)
     (setq cc3 (entlast))
     (command "copy" cc2 "" b1 f1)
     (setq cc4 (entlast))
     (command "copy" cc3 "" b1 f1)
     (setq cc5 (entlast))
     (command "array" cc2 cc3 cc4 cc5 "" "r" rx 2 f3 f2)
     (command "pline" c1 c2 c3 c4 "c")
     (setq cc6 (entlast))
     (command "array" cc6 "" "r" rx 1 f3)
     (command "pline" d1 d2 d3 d4 "c")
     (setq cc7 (entlast))
     (command "pline" e1 e2 e3 e4 "c")
     (setq cc8 (entlast))
     (command "array" cc7 cc8 "" "r" rx 2 f3 f4)

  
     (command "copy" cc2 "" b1 b6)
     (setq cc9 (entlast))
     (command "copy" cc2 "" b1 b11)
     (setq cc10 (entlast))
     (command "pline" b7 b8 b9 b10 "c")
     (setq cc11 (entlast))
     (command "pline" d5 d6 d7 d8 "c")
     (setq cc12 (entlast))
     (command "pline" e5 e6 e7 e8 "c")
     (setq cc13 (entlast))
     (command "copy" cc13 "" e5 e9)
     (setq cc14 (entlast))
     (command "copy" cc13 "" e5 e10)
     (setq cc15 (entlast))
     (command "copy" cc9 "" b1 f1)
     (setq cc16 (entlast))
     (command "copy" cc10 "" b1 f1)
     (setq cc17 (entlast))
     (command "copy" cc11 "" b1 f1)
     (setq cc18 (entlast))
     (command "array" cc9 cc10 cc11 cc12 cc13 cc14 cc15 cc16 cc17 cc18 "" "r" rx f5 f3 px)
  
     (setvar "osmode" oldmode)
     (command "-layer" "m" "0" "")
  (princ"完成")
  )
求高手帮忙修改程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 07:45 , Processed in 0.190736 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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