明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 472|回复: 13

[基础] 如何在原线条上居中生成可以输入任意长度的线条?

[复制链接]
发表于 2024-2-23 14:35 | 显示全部楼层 |阅读模式
如图,其中10可以自定义输入

本帖子中包含更多资源

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

x
发表于 2024-2-23 22:35 | 显示全部楼层
(defun c:tt ()
  (setq en  (car (entsel "\n选择line: "))
        ll  (getreal "\n输入线长: ")
        ent (entget en)
        pt1 (cdr (assoc 10 ent))
        pt2 (cdr (assoc 11 ent))
        rad (angle pt1 pt2)
        p0  (mapcar '(lambda (x y) (* (+ x y) 0.5)) pt1 pt2)
        p1  (polar p0 rad (* ll -0.5))
        p2  (polar p0 rad (* ll 0.5))
  )
  (command "line" "non" p1 "non" p2 "")
  (princ)
)
发表于 2024-2-23 16:11 | 显示全部楼层
多抄别人的代码就会了
  1. (defun c:tt  (\ dis en ent l pt1 pt2)
  2.     (setq en (car (entsel "\n选择line:"))
  3.           l(getreal"\n输入线长:")
  4.           ent(entget en)
  5.           pt1(cdr(assoc 10 ent))
  6.           pt2(cdr(assoc 11 ent))
  7.           dis(distance pt1 pt2)
  8.           l(* 0.5(- l dis))
  9.           en (entmakex ent))
  10.     (command "lengthen" "de" l (list en pt1) (list en pt2) ""))
发表于 2024-2-23 22:49 来自手机 | 显示全部楼层
本帖最后由 x_s_s_1 于 2024-2-23 23:00 编辑
277283904 发表于 2024-2-23 21:31
测试过,不起作用,没反应的呢
(\ dis en ent l pt1 pt2)改成(/ dis en ent l pt1 pt2)
  1. (defun c:tt  (/ dis en ent l pt1 pt2)
  2.   (setq  en  (car (entsel "\n选择line:"))
  3.   l   (getreal "\n输入线长:")
  4.   ent (entget en)
  5.   pt1 (cdr (assoc 10 ent))
  6.   pt2 (cdr (assoc 11 ent))
  7.   dis (distance pt1 pt2)
  8.   l   (* 0.5 (- l dis))
  9.   en  (entmakex ent))
  10.   (command "lengthen" "de" l (list en pt1) (list en pt2) ""))


本帖子中包含更多资源

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

x
发表于 2024-2-23 14:46 | 显示全部楼层
获取原线条的起点和端点 算出中点和角度 用 polar 计算得到任意长度的两点
 楼主| 发表于 2024-2-23 15:43 | 显示全部楼层
飞雪神光 发表于 2024-2-23 14:46
获取原线条的起点和端点 算出中点和角度 用 polar 计算得到任意长度的两点

不会写啊大佬
发表于 2024-2-23 16:41 来自手机 | 显示全部楼层
感谢高手代码
 楼主| 发表于 2024-2-23 21:31 | 显示全部楼层
夏生生 发表于 2024-2-23 16:11
多抄别人的代码就会了

测试过,不起作用,没反应的呢
 楼主| 发表于 2024-2-24 17:35 | 显示全部楼层
xyp1964 发表于 2024-2-23 22:35
(defun c:tt ()
  (setq en  (car (entsel "\n选择line: "))
        ll  (getreal "\n输入线长: ")

不好意思!可以在原线里生成吗,直接替换掉
 楼主| 发表于 2024-2-24 17:40 | 显示全部楼层
x_s_s_1 发表于 2024-2-23 22:49
(\ dis en ent l pt1 pt2)改成(/ dis en ent l pt1 pt2)

不好意思!可以在原线里生成吗,直接替换掉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 10:01 , Processed in 2.801331 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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