wxa123wl 发表于 2019-3-29 19:54:19

圆弧转直线

求一个圆弧转直线段的的程序

1291500406 发表于 2019-3-29 19:54:20

本帖最后由 1291500406 于 2019-3-29 22:03 编辑

bb_to_line

wxa123wl 发表于 2019-3-29 23:49:49

感谢大神,这个快就解决了

20060510412 发表于 2019-3-30 10:05:47

长见识了,多谢分享源代码

wxa123wl 发表于 2019-3-30 14:05:32

1291500406 发表于 2019-3-29 19:54
bb_to_line

必强兄,这个可以修改一下,你这个等分的太小了,50mm一段一段就够了

1291500406 发表于 2019-3-30 21:01:35

wxa123wl 发表于 2019-3-30 14:05
必强兄,这个可以修改一下,你这个等分的太小了,50mm一段一段就够了
(defun C:bb (/ OS OE SS VSS N I D LEN E OBJ E)(princ "\n等分打断线段")
(defun *ERROR* (MSG)(setvar "osmode" OS)(vl-cmdf ".undo" "e")(setq *ERROR* OE))(vl-cmdf ".undo" "be")
(princ "\n选择要等分的物件:")(setqOE *ERROR*   OS (getvar "osmode")SS (ssget '((0 . "LINE,*POLYLINE,SPLINE,ARC"))))(setvar "osmode" 0)
(or (setq N (getint "\n定数等分<需定距等分/直接回车>:"))(setq D (getdist "\n指定线段长度:")))(setq I 0)
(if SS (repeat (sslength SS)(setq E (ssname SS I))(setq LEN (vlax-curve-getdistatparam E (vlax-curve-getendparam E)))
(if N (setq D(/ LEN N) MN )(setq M (1+ (fix (/ LEN D)))))(repeat (1- M)
(if (setq PT (vlax-curve-getpointatdist E D))(vl-cmdf ".break" (list E PT) PT))(setq E (entlast)))(setq I (1+ I))))(setvar "osmode" OS)(vl-cmdf ".undo" "e")(princ))


sdls 发表于 2019-3-30 22:22:37

不明观众围观中!!

wxa123wl 发表于 2019-4-12 02:46:28

1291500406 发表于 2019-3-30 21:01
(defun C:bb (/ OS OE SS VSS N I D LEN E OBJ E)(princ "\n等分打断线段")
(defun *ERROR* (MSG)(setva ...

这个版本打断以后还是圆弧,,不知直线呢,

1291500406 发表于 2019-4-14 19:40:05

本帖最后由 1291500406 于 2019-4-14 19:43 编辑

wxa123wl 发表于 2019-4-12 02:46
这个版本打断以后还是圆弧,,不知直线呢,
圆弧为啥要变直线,还要等分,意义在哪里。

jhzlx 发表于 2019-5-3 01:54:37


感谢大神
页: [1] 2
查看完整版本: 圆弧转直线