明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1751|回复: 19

[提问] 求一个画弧形投影线的工具

[复制链接]
发表于 2022-2-16 10:02 | 显示全部楼层 |阅读模式
10明经币
求一个画弧形投影线的工具
类似这样的
选中平面的弧形,然后可以自动实现立面正投影,并添加这种投影线,最好能给个源码。谢谢了
附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2022-2-16 10:02 | 显示全部楼层
  1. (defun c:tt ()
  2.   (defun SSelEntnext (en / ss)
  3.     (setq ss (ssadd))
  4.     (while (setq en (entnext en)) (ssadd en ss))
  5.     ss
  6.   )
  7.   (setq nn (getint "\n等分数量: "))
  8.   (or nn (setq nn 21))
  9.   (setq s1 (car (entsel "\n选择曲线: ")))
  10.   (setvar "osmode" 0)
  11.   (setq s0 (entlast))
  12.   (command "divide" s1 nn)
  13.   (setq        ss  (SSelEntnext s0)
  14.         p1  (vlax-curve-getEndPoint s1)
  15.         i   -1
  16.         ptn '()
  17.   )
  18.   (while (setq s1 (ssname ss (setq i (1+ i))))
  19.     (setq ptn (cons (cdr (assoc 10 (entget s1))) ptn))
  20.   )
  21.   (command "erase" ss "")
  22.   (setq        ptn  (mapcar '(lambda (x) (list (car x) (cadr p1))) ptn)
  23.         ptn1 (mapcar '(lambda (x) (list (car x) (- (cadr x) 1000))) ptn)
  24.   )
  25.   (mapcar '(lambda (x y) (command "line" x y "")) ptn ptn1)
  26.   (command "line" (car ptn) (last ptn) "")
  27.   (command "line" (car ptn1) (last ptn1) "")
  28.   (princ)
  29. )
回复

使用道具 举报

发表于 2022-2-16 11:01 | 显示全部楼层
需求不是很详细,粗略写了一个,您可以试试
  1. (defun c:test1 (/ dis en lst n pause pt1 pt2 pt3 pt4 ss)
  2.   (defun G-pertoline (pt pt1 pt2 / norm)
  3.     (setq norm (mapcar '- pt2 pt1)
  4.           pt1  (trans pt1 0 norm)
  5.           pt   (trans pt 0 norm)
  6.           )
  7.     (trans (list (car pt1) (cadr pt1) (caddr pt)) norm 0)
  8.     )
  9.   (setq        en  (vlax-ename->vla-object (car (entsel "\n选:")))
  10.         n   (getint "\n等分数")
  11.         ss  (ssadd)
  12.         dis (/ (vlax-curve-getdistatparam en (vlax-curve-getendparam en))
  13.                n
  14.                )
  15.         )
  16.   (repeat (1+ n)
  17.     (setq
  18.       lst (cons (vlax-curve-getpointatdist en (* n dis)) lst)
  19.       n          (1- n)
  20.       )
  21.     )
  22.   (vla-getboundingbox en 'pt1 'pt2)
  23.   (setq        pt1 (vlax-safearray->list pt1)
  24.         pt2 (vlax-safearray->list pt2)
  25.         pt3 (list (car pt2) (cadr pt1))
  26.         pt4 (list (car pt1) (cadr pt2))
  27.         )
  28.   (setq        ss (ssadd (entmakex (list '(0 . "line")
  29.                                   (cons 10 pt1)
  30.                                   (cons 11 pt3)
  31.                                   )
  32.                             )
  33.                   ss
  34.                   )
  35.         ss (ssadd (entmakex (list '(0 . "line")
  36.                                   (cons 10 pt4)
  37.                                   (cons 11 pt2)
  38.                                   )
  39.                             )
  40.                   ss
  41.                   )
  42.         )
  43.   (foreach n lst
  44.     (setq ss (ssadd (entmakex (list '(0 . "line")
  45.                                     (cons 10 (G-pertoline n pt1 pt3))
  46.                                     (cons 11 (G-pertoline n pt2 pt4))
  47.                                     )
  48.                               )
  49.                     ss
  50.                     )
  51.           )
  52.     )
  53.   (command "move" ss "" pt4 pt1)
  54.   )

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2022-2-16 15:43 | 显示全部楼层
夏生生 发表于 2022-2-16 11:01
需求不是很详细,粗略写了一个,您可以试试

你好 报错  命令: ; 错误: 输入的字符串有缺陷   。。不知道什么原因
回复

使用道具 举报

发表于 2022-2-16 16:31 | 显示全部楼层
我测试的时候没出现呢   但是效果好像有点不太一样 那种渐变的感觉没有  不过渐变好像挺费劲
回复

使用道具 举报

发表于 2022-2-16 17:41 | 显示全部楼层
本帖最后由 cq4920 于 2022-2-16 18:06 编辑


你那个透视关系不太对哟

最开始想到的是批量线上加点 然后由点画线!但是用的比较少,也就用了个笨方法
1.圆弧转多段线
2.QDIM 标注
3.炸开标注 删除多余部分.





本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2022-2-17 10:34 | 显示全部楼层
cq4920 发表于 2022-2-16 17:41
你那个透视关系不太对哟

最开始想到的是批量线上加点 然后由点画线!但是用的比较少,也就用了个笨 ...

谢谢 ,就是这个意思
回复

使用道具 举报

发表于 2022-2-17 20:27 | 显示全部楼层
他牛逼了,非常感谢
回复

使用道具 举报

发表于 2022-2-17 21:14 | 显示全部楼层
xiehaoing 发表于 2022-2-16 15:43
你好 报错  命令: ; 错误: 输入的字符串有缺陷   。。不知道什么原因

代码没拷贝全吧
回复

使用道具 举报

发表于 2022-2-17 21:19 | 显示全部楼层
xj6019 发表于 2022-2-16 16:31
我测试的时候没出现呢   但是效果好像有点不太一样 那种渐变的感觉没有  不过渐变好像挺费劲

按他那种渐变确实费劲,要算斜率
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 12:38 , Processed in 0.493227 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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