King557852 发表于 2015-3-29 09:38:35

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

求EL椭圆线自动转PL多义线,万分感激不尽,            还有批量旋转物体到水平线。

ZZXXQQ 发表于 2015-3-29 12:07:58

(defun C:TELLIPSE ()
(setq OLDZIN (getvar "DIMZIN") OLDOS (getvar "OSMODE"))
(setvar "CMDECHO" 0) (setvar "OSMODE" 0) (setvar "DIMZIN" 8)
(princ "\nSelect Ellipse(s) 选择椭圆(弧) :")
(setq SS (ssget '((0 . "ELLIPSE"))))
(setvar "PELLIPSE" 1)
(repeat (setq i (sslength SS))
(setq SN (ssname SS (setq i (1- i))) LC (entget SN))
(setq LPRO (cdr (assoc 41 LC))
      X1 (cadr (assoc 10 LC))X2 (+ X1 (cadr (assoc 11 LC)))
      Y1 (caddr (assoc 10 LC)) Y2 (+ Y1 (caddr (assoc 11 LC)))
      PT1 (list X1 Y1) PT2 (list X2 Y2)DISX (distance PT1 PT2)
      XYDIS (* (cdr (assoc 40 LC)) DISX) ANN (cdr (assoc 42 LC)))
(if (= LPRO 0)
   (command "ERASE" SN "" "ELLIPSE" "C" PT1 PT2 XYDIS)
   (princ "\n椭圆弧")
)
)
(setvar "PELLIPSE" 0) (setvar "OSMODE" OLDOS) (setvar "DIMZIN" OLDZIN)
(setvar "CMDECHO" 1)
(princ)
)

lucas_3333 发表于 2015-3-29 12:42:29

ZZXXQQ 发表于 2015-3-29 12:07 static/image/common/back.gif


Z版,不支持UCS模式呀

King557852 发表于 2015-3-29 15:05:12

感谢大师的无私奉献,明经论坛很好!高手如云

sicky111 发表于 2015-3-30 00:23:07

本帖最后由 sicky111 于 2015-3-30 00:27 编辑

ZZXXQQ 发表于 2015-3-29 12:07 static/image/common/back.gif


请问Z版,能转成LWPOLYLINE吗?

sicky111 发表于 2015-3-30 09:34:55

ZZXXQQ 发表于 2015-3-29 12:07 static/image/common/back.gif


我已经试过了,无论PLINETYPE为0,还是1,转出来都是POLYLINE,所以才有此一问。

ZZXXQQ 发表于 2015-3-30 13:53:11

sicky111 发表于 2015-3-30 09:34 static/image/common/back.gif
我已经试过了,无论PLINETYPE为0,还是1,转出来都是POLYLINE,所以才有此一问。

那就炸开再用PEDIT生成LWPOLYLINE

vbnewer 发表于 2015-4-1 10:57:24

试过了,椭圆可以转换,但椭圆弧不能转,什么原因啊?

ucuc2003 发表于 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

vbnewer 发表于 2015-4-1 16:16:36

ucuc2003 发表于 2015-4-1 15:38 static/image/common/back.gif
(defun C:tt()
(setvar "cmdecho" 0)
(princ "画椭圆")


这个是用来画椭圆或椭圆弧,能不能把一段现有的椭圆弧直接转换成圆弧多义线?
页: [1] 2
查看完整版本: 求EL椭圆线自动转PL多义线,万分感激不尽