找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1918|回复: 21

[寻找]:如何把已经存在的两条平行线的距离沿中轴缩放?

[复制链接]
发表于 2004-5-10 09:36:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如何把已经存在的两条平行线的距离沿中轴缩放? 例如:
把已经存在的两条平行线的距离沿中轴由180的距离变成240的距离?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-5-10 11:05:37 | 显示全部楼层
以中轴上某一点为基点SCALE, 放大xi数(/ 240 180.0).
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-10 12:40:12 | 显示全部楼层
SCALE 会改变原线尺寸吧,如果只是改变距离,得移动了。
应该是类似天正改变墙宽的命令,中轴线实际上是不存在的。
我不懂用lisp求出选择的俩平行线的距离,向长老求助。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-10 15:13:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
不好意思,  班门弄斧拉. 我不懂建筑, 也不知天正是什么.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-5-10 17:30:19 | 显示全部楼层
我的理解,编程思路是选择两平行线,判断他们的距离,然后提示输入改变后的距离,计算后对原平行线offset,然后再删除原线。可我不知道怎样才能判断原来的距离。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-10 17:57:01 | 显示全部楼层
最初由 chstart 发布
[B]我的理解,编程思路是选择两平行线,判断他们的距离,然后提示输入改变后的距离,计算后对原平行线offset,然后再删除原线。可我不知道怎样才能判断原来的距离。 [/B]


跨線兩端

  1. (defun offsll()
  2.       (setq pt2 (getpoint pt1 "\nGive Second point:"))
  3.       (setq pp (list pt1 pt2))
  4.       (setq ppf (list pt1 pt2))
  5.       (setq ss (ssget "F" pp))
  6.       (setq i 0)
  7.       (repeat (sslength ss)
  8.          (setq ssn (ssname ss i))
  9.          (setq ssdata (entget ssn))
  10.          (setq sstype (cdr (assoc 0 ssdata)))
  11.          (setq pp1 (cdr (assoc 10 ssdata)))
  12.          (setq pp2 (cdr (assoc 11 ssdata)))
  13.          (setq pp (inters pt1 pt2 pp1 pp2))
  14.          (if (= i 0)(setq pd1 pp))
  15.          (if (= i 1)(setq pd2 pp))
  16.          (setq i (+ i 1))
  17.       )
  18.       (setq dt (distance pd1 pd2))
  19.       (setq ang1 (angle pt2 pt1))
  20.       (setq ang2 (angle pp2 pp1))
  21.       (setq ang (- (/ pi 2) (- ang1 ang2)))
  22.       (setq dt (* dt (abs (cos ang))))
  23.       (print dt)
  24. )

  25. (defun C:offsc()
  26.    (setvar "cmdecho" 0)
  27.    (setvar "blipmode" 0)
  28.    (setq selnum (getvar "osmode"))
  29.    (setvar "osmode" 0)
  30.    (setq pt1 (getpoint "\nGive First point:"))
  31.    (while pt1
  32.       (offsll)
  33.       (setq pt1 (getpoint "\nGive First point:"))
  34.    )
  35.        (setvar "osmode" selnum)
  36. (prin1)
  37. )


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-11 08:19:50 | 显示全部楼层
最初由 f5612140 发布
[B][QUOTE]最初由 chstart 发布
[B]我的理解,编程思路是选择两平行线,判断他们的距离,然后提示输入改变后的距离,计算后对原平行线offset,然后再删除原线。可我不知道怎样才能判断原来的距离。
跨線兩端

代码:
[/B][/QUOTE... [/B]

这样需要用捕捉确定两点,能否用选择的方式。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-11 08:56:27 | 显示全部楼层
最初由 海豚 发布
这样需要用捕捉确定两点,能否用选择的方式


1.提供的程序原是在其他的應用修改的
2.跨線兩端使用上較方便,可做為程序延伸的基礎,解決樓主的問題,程序設計較簡單
3.單選某條線自斷判斷寬度也不難,我在其他的程序也有這方面的應用,整理後再上傳
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-5-11 09:16:46 | 显示全部楼层
最初由 海豚 发布
[B][QUOTE]最初由 f5612140 发布
[B][QUOTE]最初由 chstart 发布
[B]我的理解,编程思路是选择两平行线,判断他们的距离,然后提示输入改变后的距离,计算后对原平行线offset,然后再删除原线。可我不?.. [/B]

使用2005提供 m2p 捕捉模式
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-11 17:03:58 | 显示全部楼层
符合樓主要求

  1. (defun offsll()
  2.       (setq pt2 (getpoint pt1 "\nGive Second point:"))
  3.       (setq pp (list pt1 pt2))
  4.       (setq ppf (list pt1 pt2))
  5.       (setq ss (ssget "F" pp))
  6.       (setq i 0)
  7.       (repeat (sslength ss)
  8.          (setq ssn (ssname ss i))
  9.          (setq ssdata (entget ssn))
  10.          (setq sstype (cdr (assoc 0 ssdata)))
  11.          (setq pp1 (cdr (assoc 10 ssdata)))
  12.          (setq pp2 (cdr (assoc 11 ssdata)))
  13.          (setq pp (inters pt1 pt2 pp1 pp2))
  14.          (if (= i 0)(setq pd1 pp))
  15.          (if (= i 1)(setq pd2 pp))
  16.          (setq i (+ i 1))
  17.       )
  18.       (setq dt (distance pd1 pd2))
  19.       (setq ang1 (angle pt2 pt1))
  20.       (setq ang2 (angle pp2 pp1))
  21.       (setq ang (- (/ pi 2) (- ang1 ang2)))
  22.       (setq dt (* dt (abs (cos ang))))
  23.       (command "offset" (/ dt 2) ssn pt1 "")
  24.       (command "chprop" "l" "" "c" 1 "")
  25.       (setq ssl (ssget "l"))
  26.       (setq dtset (getdist (strcat "\nEnter new width <" (rtos dt 2 4) ">: ")))
  27.       (command "offset" (/ dtset 2) ssl pt1 "")
  28.       (command "chprop" "l" "" "c" "bylayer" "")
  29.        (command "offset" (/ dtset 2) ssl pt2 "")
  30.       (command "chprop" "l" "" "c" "bylayer" "")
  31.       (command "erase" ssl ss "")  
  32. )

  33. (defun C:offsc()
  34.    (setvar "cmdecho" 0)
  35.    (setvar "blipmode" 0)
  36.    (setq selnum (getvar "osmode"))
  37.    (setvar "osmode" 0)
  38.    (setq pt1 (getpoint "\nGive First point:"))
  39.    (while pt1
  40.       (offsll)
  41.       (setq pt1 (getpoint "\nGive First point:"))
  42.    )
  43.        (setvar "osmode" selnum)
  44. (prin1)
  45. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-12 23:02:12 | 显示全部楼层
最初由 f5612140 发布
[B]符合樓主要求
[code]
(defun offsll()
      (setq pt2 (getpoint pt1 "\nGive Second point:"))
      (setq pp (list pt1 pt2))
      (setq ppf (list pt1 pt2))
      (setq ss (ssget "F" pp))
      (s... [/B]

垂直和水平没有问题,其他角度的出错。
选择需要捕捉,还是不太方便。
但还是谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-13 08:39:51 | 显示全部楼层
最初由 海豚 发布
[垂直和水平没有问题,其他角度的出错。
选择需要捕捉,还是不太方便。
... [/B]


1.怪哉,我試了沒問題,可否傳上圖檔看看,是否有重疊線的問題,解決重疊線另有處理方法
2.不了解你說"选择需要捕捉"的意思?是指跨兩端求中線的意思吧,
之前說過這是解決問題的方法之一
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-14 00:07:30 | 显示全部楼层
最初由 chstart 发布
[B]我的理解,编程思路是选择两平行线,判断他们的距离,然后提示输入改变后的距离,计算后对原平行线offset,然后再删除原线。可我不知道怎样才能判断原来的距离。 [/B]


这个想法可以实现,另外,不用分别选两个平行线,用选集,在程序里面判断平行关系,找到那条线的“爱人”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-14 09:06:36 | 显示全部楼层
最初由 陌生人 发布
这个想法可以实现,另外,不用分别选两个平行线,用选集,在程序里面判断平行关系,找到那条线的“爱人”


這個容易,要讓程序順利進行,需考慮重線的問題
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-14 18:56:23 | 显示全部楼层
最初由 f5612140 发布
[B]

1.怪哉,我試了沒問題,可否傳上圖檔看看,是否有重疊線的問題,解決重疊線另有處理方法... [/B]


我只是随便画了一条斜线,OFFSET200,不存在重线的问题。
我用的是AUTOCAD2004。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-21 07:22 , Processed in 0.200612 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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