明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2216|回复: 10

[讨论] 求EL椭圆线自动转PL多义线,万分感激不尽

[复制链接]
发表于 2015-3-29 09:38:35 | 显示全部楼层 |阅读模式
求EL椭圆线自动转PL多义线,万分感激不尽,              还有批量旋转物体到水平线。
发表于 2015-3-29 12:07:58 | 显示全部楼层
  1. (defun C:TELLIPSE ()
  2. (setq OLDZIN (getvar "DIMZIN") OLDOS (getvar "OSMODE"))
  3. (setvar "CMDECHO" 0) (setvar "OSMODE" 0) (setvar "DIMZIN" 8)
  4. (princ "\nSelect Ellipse(s) 选择椭圆(弧) :")
  5. (setq SS (ssget '((0 . "ELLIPSE"))))
  6. (setvar "PELLIPSE" 1)
  7. (repeat (setq i (sslength SS))
  8.   (setq SN (ssname SS (setq i (1- i))) LC (entget SN))
  9.   (setq LPRO (cdr (assoc 41 LC))
  10.         X1 (cadr (assoc 10 LC))  X2 (+ X1 (cadr (assoc 11 LC)))
  11.         Y1 (caddr (assoc 10 LC)) Y2 (+ Y1 (caddr (assoc 11 LC)))
  12.         PT1 (list X1 Y1) PT2 (list X2 Y2)  DISX (distance PT1 PT2)
  13.         XYDIS (* (cdr (assoc 40 LC)) DISX) ANN (cdr (assoc 42 LC)))
  14.   (if (= LPRO 0)
  15.    (command "ERASE" SN "" "ELLIPSE" "C" PT1 PT2 XYDIS)
  16.    (princ "\n椭圆弧")
  17.   )
  18. )
  19. (setvar "PELLIPSE" 0) (setvar "OSMODE" OLDOS) (setvar "DIMZIN" OLDZIN)
  20. (setvar "CMDECHO" 1)
  21. (princ)
  22. )
发表于 2015-3-29 12:42:29 | 显示全部楼层
ZZXXQQ 发表于 2015-3-29 12:07

Z版,不支持UCS模式呀
 楼主| 发表于 2015-3-29 15:05:12 | 显示全部楼层
感谢大师的无私奉献,明经论坛很好!高手如云
发表于 2015-3-30 00:23:07 | 显示全部楼层
本帖最后由 sicky111 于 2015-3-30 00:27 编辑
ZZXXQQ 发表于 2015-3-29 12:07


请问Z版,能转成LWPOLYLINE吗?

点评

正常情况下是转成LWPOLYLINE的,除非PLINETYPE为零  发表于 2015-3-30 08:17
发表于 2015-3-30 09:34:55 | 显示全部楼层
ZZXXQQ 发表于 2015-3-29 12:07

我已经试过了,无论PLINETYPE为0,还是1,转出来都是POLYLINE,所以才有此一问。
发表于 2015-3-30 13:53:11 | 显示全部楼层
sicky111 发表于 2015-3-30 09:34
我已经试过了,无论PLINETYPE为0,还是1,转出来都是POLYLINE,所以才有此一问。

那就炸开再用PEDIT生成LWPOLYLINE
发表于 2015-4-1 10:57:24 | 显示全部楼层
试过了,椭圆可以转换,但椭圆弧不能转,什么原因啊?

点评

代码只能转换整个椭圆,要转换椭圆弧就要计算椭圆弧端点,然后画出椭圆后打断即可。  发表于 2015-4-2 08:26
发表于 2015-4-1 15:38:40 | 显示全部楼层
(defun C:tt()
(setvar "cmdecho" 0)
(princ "画椭圆")
(defun *Error* (msg)
   (if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,*EXIT*,")))
     (setvar "pellipse" 0))
);defun *Error*
(initget "t y")
(setq tyty (getkword"\n[创建默认椭圆(T)/创建多段线椭圆(Y)]<T>"))
(if (= tyty "y")(y_ss)(t_ss))
(princ)
);defun

(defun y_ss()
(setvar "pellipse" 1)
(command "ellipse")
(princ)
);end y_ss

(defun t_ss()
(setvar "pellipse" 0)
(command "ellipse")
(princ)
);end t_ss
发表于 2015-4-1 16:16:36 | 显示全部楼层
ucuc2003 发表于 2015-4-1 15:38
(defun C:tt()
(setvar "cmdecho" 0)
(princ "画椭圆")

这个是用来画椭圆或椭圆弧,能不能把一段现有的椭圆弧直接转换成圆弧多义线?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-23 09:04 , Processed in 0.180848 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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