找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 858|回复: 14

[建议]:单线变双

[复制链接]
发表于 2003-12-8 11:40:36 | 显示全部楼层 |阅读模式

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

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

×
晓东工具可否增加单线变双命令,自定宽度!这样将给制图提供很多方便!谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-12-8 11:58:44 | 显示全部楼层
補充樓主需求
1.批量處理
2.交叉部份同部截除
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-12-8 12:06:26 | 显示全部楼层
专业软件都有这个功能,建筑、规划等等
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-8 12:43:03 | 显示全部楼层
最初由 eachy 发布
[B]专业软件都有这个功能,建筑、规划等等 [/B]


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

使用道具 举报

发表于 2003-12-8 12:57:44 | 显示全部楼层
我收集的一个单线变双,但原来的线条没有了,我想保留原线、且变双所两条先变为当前层或指定层,谁帮忙修改一下?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-8 14:28:17 | 显示全部楼层
修改好了,将两处的(entdel line1)注册即可!


  1.   [FONT=courier new]
  2. ;;; dub.lsp
  3. ;;; 本程序用处是 把单线转换成双线
  4. ;;; 用法:
  5. ;;;   装载后 键入 dub , 输入双线的半宽,
  6. ;;;   然后 依次选择需转换的线 即可.
  7. ;;;   注意! 只能是线!
  8. ;;; 作者:陈皓,回信请给magicblood@usa.net

  9. (defun c:dub (/               sblip        scmde         wi          line1           spt
  10.               data1    data2        data3         data4          data5           pt1
  11.               pt2      bpt1        bpt2         off_l1p1 off_l2p2 off_l1p2
  12.               off_l2p1 boffl1p1        boffl1p2 boffl2p1 boffl2p2 off_l1
  13.               off_l2   boff_l1        boff_l2         p1          p2           pp1
  14.               pp2      bpp1        bpp2         l1          l2           bl1
  15.               bl2      ll1        ll2         bll1          bll2
  16.              )

  17.   ;; 文件头,设置系统环境,读取双线半宽以及选取和提取第一条基线数据.
  18.   (setq sblip (getvar "blipmode"))
  19.   (setq scmde (getvar "cmdecho"))
  20.   (setq oldosnap (getvar "osnap"))        ; and by xiewr
  21.   (setvar "osmode" 0)                        ;
  22.   (setvar "blipmode" 0)
  23.   (setvar "cmdecho" 0)
  24.   (setq wi (getreal "Half width:"))
  25.   (setq line1 (entsel "\nPlease chooes line:"))
  26.   (setq spt (cadr line1))
  27.   (setq line1 (car line1))
  28.   (setq data1 (entget line1))
  29.   (setq pt1 (cdr (assoc 10 data1)))
  30.   (setq pt2 (cdr (assoc 11 data1)))

  31.   (off_pt)

  32.   ;; 进行基线偏移,及获取偏移线的实体名.
  33.   (command "offset" wi spt p1 spt p2 "")
  34.                                         ;(entdel line1)
  35.   (setq off_l1 (entlast))
  36.   (entdel off_l1)
  37.   (setq off_l2 (entlast))
  38.   (entdel off_l1)

  39.   ;; 数据备份
  40.   (setq bpt1 pt1)
  41.   (setq bpt2 pt2)
  42.   (setq boff_l1 off_l1)
  43.   (setq boff_l2 off_l2)

  44.   (setq line1 (entsel "\nPlease chooes line:"))
  45.   (setq spt (cadr line1))
  46.   (setq line1 (car line1))

  47.   ;; 循环进行各拾取线的处理
  48.   (while line1
  49.     (setq data1 (entget line1))
  50.     (setq pt1 (cdr (assoc 10 data1)))
  51.     (setq pt2 (cdr (assoc 11 data1)))

  52.     (off_pt)
  53.     (command "offset" wi spt p1 spt p2 "")
  54.                                         ;(entdel line1)
  55.     (setq off_l1 (entlast))
  56.     (entdel off_l1)
  57.     (setq off_l2 (entlast))
  58.     (entdel off_l1)

  59.     (get_data)

  60.     ;; 计算各偏移线在不同情况下的处理数据.
  61.     (cond
  62.       ((equal bpt2 pt1)
  63.        (cond
  64.          ((inters
  65.             off_l1p1
  66.             off_l1p2
  67.             boffl1p1
  68.             boffl1p2
  69.           )
  70.           (setq pp1 off_l1p2)
  71.           (setq pp2 off_l2p2)
  72.           (setq bpp1 boffl1p1)
  73.           (setq bpp2 boffl2p1)
  74.           (setq l1 off_l1)
  75.           (setq l2 off_l2)
  76.           (setq bl1 boff_l1)
  77.           (setq bl2 boff_l2)
  78.          )
  79.          ((inters
  80.             off_l1p1
  81.             off_l1p2
  82.             boffl2p1
  83.             boffl2p2
  84.           )
  85.           (setq pp1 off_l1p2)
  86.           (setq pp2 off_l2p2)
  87.           (setq bpp1 boffl2p1)
  88.           (setq bpp2 boffl1p1)
  89.           (setq l1 off_l1)
  90.           (setq l2 off_l2)
  91.           (setq bl1 boff_l2)
  92.           (setq bl2 boff_l1)
  93.          )
  94.          ((inters
  95.             off_l2p1
  96.             off_l2p2
  97.             boffl1p1
  98.             boffl1p2
  99.           )
  100.           (setq pp1 off_l2p2)
  101.           (setq pp2 off_l1p2)
  102.           (setq bpp1 boffl1p1)
  103.           (setq bpp2 boffl2p1)
  104.           (setq l1 off_l2)
  105.           (setq l2 off_l1)
  106.           (setq bl1 boff_l1)
  107.           (setq bl2 boff_l2)
  108.          )
  109.          ((inters
  110.             off_l2p1
  111.             off_l2p2
  112.             boffl2p1
  113.             boffl2p2
  114.           )
  115.           (setq pp1 off_l2p2)
  116.           (setq pp2 off_l1p2)
  117.           (setq bpp1 boffl2p1)
  118.           (setq bpp2 boffl1p1)
  119.           (setq l1 off_l2)
  120.           (setq l2 off_l1)
  121.           (setq bl1 boff_l2)
  122.           (setq bl2 boff_l1)
  123.          )
  124.        )
  125.       )

  126.       ((equal bpt2 pt2)
  127.        (cond
  128.          ((inters
  129.             off_l1p1
  130.             off_l1p2
  131.             boffl1p1
  132.             boffl1p2
  133.           )
  134.           (setq pp1 off_l1p1)
  135.           (setq pp2 off_l2p1)
  136.           (setq bpp1 boffl1p1)
  137.           (setq bpp2 boffl2p1)
  138.           (setq l1 off_l1)
  139.           (setq l2 off_l2)
  140.           (setq bl1 boff_l1)
  141.           (setq bl2 boff_l2)
  142.          )
  143.          ((inters
  144.             off_l1p1
  145.             off_l1p2
  146.             boffl2p1
  147.             boffl2p2
  148.           )
  149.           (setq pp1 off_l1p1)
  150.           (setq pp2 off_l2p1)
  151.           (setq bpp1 boffl2p1)
  152.           (setq bpp2 boffl1p1)
  153.           (setq l1 off_l1)
  154.           (setq l2 off_l2)
  155.           (setq bl1 boff_l2)
  156.           (setq bl2 boff_l1)
  157.          )
  158.          ((inters
  159.             off_l2p1
  160.             off_l2p2
  161.             boffl1p1
  162.             boffl1p2
  163.           )
  164.           (setq pp1 off_l2p1)
  165.           (setq pp2 off_l1p1)
  166.           (setq bpp1 boffl1p1)
  167.           (setq bpp2 boffl2p1)
  168.           (setq l1 off_l2)
  169.           (setq l2 off_l1)
  170.           (setq bl1 boff_l1)
  171.           (setq bl2 boff_l2)
  172.          )
  173.          ((inters
  174.             off_l2p1
  175.             off_l2p2
  176.             boffl2p1
  177.             boffl2p2
  178.           )
  179.           (setq pp1 off_l2p1)
  180.           (setq pp2 off_l1p1)
  181.           (setq bpp1 boffl2p1)
  182.           (setq bpp2 boffl1p1)
  183.           (setq l1 off_l2)
  184.           (setq l2 off_l1)
  185.           (setq bl1 boff_l2)
  186.           (setq bl2 boff_l1)
  187.          )
  188.        )
  189.       )

  190.       ((equal bpt1 pt1)
  191.        (cond
  192.          ((inters
  193.             off_l1p1
  194.             off_l1p2
  195.             boffl1p1
  196.             boffl1p2
  197.           )
  198.           (setq pp1 off_l1p2)
  199.           (setq pp2 off_l2p2)
  200.           (setq bpp1 boffl1p2)
  201.           (setq bpp2 boffl2p2)
  202.           (setq l1 off_l1)
  203.           (setq l2 off_l2)
  204.           (setq bl1 boff_l1)
  205.           (setq bl2 boff_l2)
  206.          )
  207.          ((inters
  208.             off_l1p1
  209.             off_l1p2
  210.             boffl2p1
  211.             boffl2p2
  212.           )
  213.           (setq pp1 off_l1p2)
  214.           (setq pp2 off_l2p2)
  215.           (setq bpp1 boffl2p2)
  216.           (setq bpp2 boffl1p2)
  217.           (setq l1 off_l1)
  218.           (setq l2 off_l2)
  219.           (setq bl1 boff_l2)
  220.           (setq bl2 boff_l1)
  221.          )
  222.          ((inters
  223.             off_l2p1
  224.             off_l2p2
  225.             boffl1p1
  226.             boffl1p2
  227.           )
  228.           (setq pp1 off_l2p2)
  229.           (setq pp2 off_l1p2)
  230.           (setq bpp1 boffl1p2)
  231.           (setq bpp2 boffl2p2)
  232.           (setq l1 off_l2)
  233.           (setq l2 off_l1)
  234.           (setq bl1 boff_l1)
  235.           (setq bl2 boff_l2)
  236.          )
  237.          ((inters
  238.             off_l2p1
  239.             off_l2p2
  240.             boffl2p1
  241.             boffl2p2
  242.           )
  243.           (setq pp1 off_l2p2)
  244.           (setq pp2 off_l1p2)
  245.           (setq bpp1 boffl2p2)
  246.           (setq bpp2 boffl1p2)
  247.           (setq l1 off_l2)
  248.           (setq l2 off_l1)
  249.           (setq bl1 boff_l2)
  250.           (setq bl2 boff_l1)
  251.          )
  252.        )
  253.       )

  254.       ((equal bpt1 pt2)
  255.        (cond
  256.          ((inters
  257.             off_l1p1
  258.             off_l1p2
  259.             boffl1p1
  260.             boffl1p2
  261.           )
  262.           (setq pp1 off_l1p1)
  263.           (setq pp2 off_l2p1)
  264.           (setq bpp1 boffl1p2)
  265.           (setq bpp2 boffl2p2)
  266.           (setq l1 off_l1)
  267.           (setq l2 off_l2)
  268.           (setq bl1 boff_l1)
  269.           (setq bl2 boff_l2)
  270.          )
  271.          ((inters
  272.             off_l1p1
  273.             off_l1p2
  274.             boffl2p1
  275.             boffl2p2
  276.           )
  277.           (setq pp1 off_l1p1)
  278.           (setq pp2 off_l2p1)
  279.           (setq bpp1 boffl2p2)
  280.           (setq bpp2 boffl1p2)
  281.           (setq l1 off_l1)
  282.           (setq l2 off_l2)
  283.           (setq bl1 boff_l2)
  284.           (setq bl2 boff_l1)
  285.          )
  286.          ((inters
  287.             off_l2p1
  288.             off_l2p2
  289.             boffl1p1
  290.             boffl1p2
  291.           )
  292.           (setq pp1 off_l2p1)
  293.           (setq pp2 off_l1p1)
  294.           (setq bpp1 boffl1p2)
  295.           (setq bpp2 boffl2p2)
  296.           (setq l1 off_l2)
  297.           (setq l2 off_l1)
  298.           (setq bl1 boff_l1)
  299.           (setq bl2 boff_l2)
  300.          )
  301.          ((inters
  302.             off_l2p1
  303.             off_l2p2
  304.             boffl2p1
  305.             boffl2p2
  306.           )
  307.           (setq pp1 off_l2p1)
  308.           (setq pp2 off_l1p1)
  309.           (setq bpp1 boffl2p2)
  310.           (setq bpp2 boffl1p2)
  311.           (setq l1 off_l2)
  312.           (setq l2 off_l1)
  313.           (setq bl1 boff_l2)
  314.           (setq bl2 boff_l1)
  315.          )
  316.        )
  317.       )
  318.     )

  319.     ;; 合并以上所得数据
  320.     (setq ll1 (cons l1 (list pp1)))
  321.     (setq ll2 (cons l2 (list pp2)))
  322.     (setq bll1 (cons bl1 (list bpp1)))
  323.     (setq bll2 (cons bl2 (list bpp2)))

  324.     ;; 根据所得数据进行处理
  325.     (command "fillet" ll1 bll1)
  326.     (command "fillet" ll2 bll2)

  327.     ;; 备份上一次的数据
  328.     (setq bpt1 pt1)
  329.     (setq bpt2 pt2)
  330.     (setq boff_l1 off_l1)
  331.     (setq boff_l2 off_l2)

  332.     ;; 读取下一基线
  333.     (setq line1 (entsel "\nPlease chooes line:"))
  334.     (setq spt (cadr line1))
  335.     (setq line1 (car line1))
  336.   )

  337.   ;; 全部线段偏移完毕后,恢复系统变量,结束程序.
  338.   (setvar "osmode" oldosnap)                ; and xiewer
  339.   (setvar "blipmode" sblip)
  340.   (setvar "cmdecho" scmde)
  341.   (princ)
  342. )

  343. ;;;
  344. ;;;
  345. ;;; 偏移点计算
  346. ;;;    偏移点用于设定各偏移线的偏移方向
  347. ;;;

  348. (defun off_pt ()
  349.   (cond
  350.     ((/= (cadr pt1) (cadr pt2))
  351.      (setq p1 (cons (1+ (car pt1)) (cdr pt1)))
  352.      (setq p2 (cons (1- (car pt1)) (cdr pt1)))
  353.     )

  354.     ((= (cadr pt1) (cadr pt2))
  355.      (setq p1 (cons (car pt1) (cons (1+ (cadr pt1)) (cddr pt1))))
  356.      (setq p2 (cons (car pt1) (cons (1- (cadr pt1)) (cddr pt1))))
  357.     )
  358.   )
  359. )


  360. ;;;
  361. ;;;
  362. ;;; 数据提取
  363. ;;;  提取内容为 前后两次共四根偏移线的起 止点等
  364. ;;;
  365. ;;;

  366. (defun get_data        ()
  367.   (setq data2 (entget off_l1))
  368.   (setq data3 (entget off_l2))
  369.   (setq data4 (entget boff_l1))
  370.   (setq data5 (entget boff_l2))

  371.   (setq off_l1p1 (cdr (assoc 10 data2)))
  372.   (setq off_l1p2 (cdr (assoc 11 data2)))

  373.   (setq off_l2p1 (cdr (assoc 10 data3)))
  374.   (setq off_l2p2 (cdr (assoc 11 data3)))

  375.   (setq boffl1p1 (cdr (assoc 10 data4)))
  376.   (setq boffl1p2 (cdr (assoc 11 data4)))

  377.   (setq boffl2p1 (cdr (assoc 10 data5)))
  378.   (setq boffl2p2 (cdr (assoc 11 data5)))
  379. )

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

使用道具 举报

发表于 2003-12-8 14:29:17 | 显示全部楼层
我早就在找这样的程序,绘制管道时,只得拷贝、偏移,麻烦。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-8 16:52:49 | 显示全部楼层
不错就是程序运行完毕之后不返回空值
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-8 17:02:51 | 显示全部楼层
希望大家都能出力
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-14 20:20:12 | 显示全部楼层
为何我用6楼的程序选线段的时候会进入中断循环呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-2-3 10:21:07 | 显示全部楼层
不错,可以使用,不过有和8搂相同的问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-2-3 18:03:00 | 显示全部楼层
最初由 playboy 发布
[B]不错就是程序运行完毕之后不返回空值 [/B]


把下面语句中的(setvar "osmode" oldosnap)去掉即可。原因是在程序开始并没有用getvar函数将系统变量osmode的值同值给变量oldosnap。

  ;; 全部线段偏移完毕后,恢复系统变量,结束程序.
  (setvar "osmode" oldosnap)                ; and xiewer
  (setvar "blipmode" sblip)
  (setvar "cmdecho" scmde)
  (princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2004-2-3 18:33:27 | 显示全部楼层
本程序offset直线(line)时,可以连续操作,单offset多义线(lwpolyline或polyline)时,offset第二条多义线(lwpolyline或polyline)就出错.希望楼主修正
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-2-5 11:46:42 | 显示全部楼层
这个程序不错,很实用,要加入交线自动裁剪就更好了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-20 22:56 , Processed in 0.415858 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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