明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 843|回复: 5

[提问] (求助)请教一下各位大神<两曲线平行等分>能否可以实现

[复制链接]
发表于 2022-4-6 22:16:27 | 显示全部楼层 |阅读模式
10明经币
1.选择需要均分的线(均分的线为当前图层)2.请输入均分的数量


各位路过的大神,有空的话,看看是否可以帮小弟实现这个功能



附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

发表于 2022-4-6 22:16:28 | 显示全部楼层
  1. (defun c:T0406( / COUNT NUM S1 S2 OS1 OS2 Len1 Len2 PTS1  PTS2 I J P1 P2 REV)
  2.   ;使用步骤:
  3.   ;1.选择曲线1
  4.   ;2.选择曲线2
  5.   ;3.输入曲线1 与 曲线2之间的内插根数
  6.   ;4.如果曲线1 与 曲线2的起点不在一起,提示是否反向时输入 y或Y ,否则输入N或n!!!
  7.   ;注1:此工具对拆线支持的不太友好
  8.   ;注2:为方便,此工具对不做过多的类型判断,使用时需要按提示输入

  9.   (setvar "osmode" 0)
  10.   (setq COUNT 100);等分数 如果觉得画得不够细腻,此值设大一点
  11.   (setq S1 (car (entsel "\n选择曲线1:")))
  12.   (setq S2 (car (entsel "\n选择曲线2:")))
  13.   (setq NUM (getint "\n输入插入根数"))
  14.   (setq REV (getstring "\n是否反向某一根线(Y/N):"))
  15.   (setq OS1 (vlax-ename->vla-object S1))
  16.   (setq OS2 (vlax-ename->vla-object S2))  
  17.   (setq Len1 (/ (vlax-curve-getDistAtParam OS1 (vlax-curve-getEndParam OS1)) COUNT)) ;获取线1的每份长度
  18.   (setq Len2 (/ (vlax-curve-getDistAtParam OS2 (vlax-curve-getEndParam OS2)) COUNT)) ;获取线2的每份长度
  19.   (setq Index 1)
  20.   (setq PTS1 (list (vlax-curve-getStartPoint OS1)))
  21.   (setq PTS2 (list (vlax-curve-getStartPoint OS2)))
  22.   (while (< Index COUNT)
  23.     (setq PTS1 (append PTS1 (list (vlax-curve-getPointAtDist OS1 (* Index Len1)))))
  24.     (setq PTS2 (append PTS2 (list (vlax-curve-getPointAtDist OS2 (* Index Len2)))))
  25.     (setq Index (1+ Index))
  26.     )
  27.   (setq PTS1 (append PTS1 (list (vlax-curve-getEndPoint OS1))))
  28.   (setq PTS2 (append PTS2 (list (vlax-curve-getEndPoint OS2))))
  29.   (if (= "Y" (strcase REV))
  30.     (setq PTS2 (reverse PTS2))
  31.     )  
  32.   (setq I 1  NUM(1+ NUM) COUNT (length PTS1))
  33.   (while (< I NUM)
  34.     (setq J 0)
  35.     (command "SPLINE")
  36.     (while (< J COUNT)
  37.       (setq P1 (nth J PTS1) P2 (nth J PTS2))
  38.       (command (polar P1 (angle P1 P2) (/ (* (distance P1 P2) I) NUM)))
  39.       (setq J (1+ J))
  40.       )
  41.     (command "")(command "")(command "")   
  42.     (setq I (1+ I))
  43.     )
  44.   )




评分

参与人数 3明经币 +2 金钱 +5 收起 理由
tigcat + 5 很给力!
lee50310 + 1 很给力!
bssurvey + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2022-4-7 08:02:13 | 显示全部楼层
感謝guohq分享
回复

使用道具 举报

发表于 2022-4-7 08:56:08 | 显示全部楼层
真的,对折线支持不好,有弯曲,希望能改进
回复

使用道具 举报

 楼主| 发表于 2022-4-7 09:25:13 | 显示全部楼层

谢谢大神出手,非常好用呢,一开始我理解错了反向某根线是什么意思,然后就失败了,后来换一下,就可以用了,谢谢大神
回复

使用道具 举报

发表于 2022-4-7 09:40:59 | 显示全部楼层
本帖最后由 liufii 于 2022-4-7 09:43 编辑

多谢分享,这个比之前用的两个要简洁一些,请问连接线能改成多段线连接吗?好了,把SPLINE改成PLINE就可以了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 14:33 , Processed in 0.292518 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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