找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2894|回复: 18

[讨论]:关于单线变双的算法,大家能讨论一下吗?

[复制链接]
发表于 2002-4-26 09:00:12 | 显示全部楼层 |阅读模式

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

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

×
如题。
相关论题:
http://www.xdcad.net/forum/showt ... tid=17764#post17764

                               
登录/注册后可看大图
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-4-26 11:56:17 | 显示全部楼层

好贴,一个值得讨论的话题。

好贴呀!!,在工程中用处太大了。
我一直没有好的解决办法,特别是曲线相交的情况,根本就无从下手,就是PLINE线,我也没有多少办法。
有明白人给大家指点指点吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-4-26 14:25:13 | 显示全部楼层
我提供过用XDRX_API写的“双线直墙”、“道路”、“井子梁”、“主梁”、“次梁”的程序,去“程序库论坛”找找。

“双线主梁”、“双线次梁”还有不同的截断方法。

程序需要几个函数:

直线和直线的交点
直线和园的交点
直线和弧线的交点
弧线和弧线的交点

另外:重要的是:

求过一点的选择集的函数用来构造交叉处的墙线选择集。

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

使用道具 举报

发表于 2002-4-27 19:46:14 | 显示全部楼层
把要改为双线的线左右偏移(偏移前可先连接为pline),再把偏移的两线连接,再转为region,再union即可(有需要再炸开)。
只是线"line,*polyline,arc,spline,ellipse,circle"要在不点选下自动左右偏移(还在想办法!!)

很多情况没法连接,比如,两条成60度角的线,如果是"转折"型而不是交叉型,当OFFSET时,外边线有口子.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2002-4-28 22:33:27 | 显示全部楼层

我得好好学学习XDAPI了.里面的内容很丰富.

最初由 XDSoft 发布
[B]我提供过用XDRX_API写的“双线直墙”、“道路”、“井子梁”、“主梁”、“次梁”的程序,去“程序库论坛”找找。

“双线主梁”、“双线次梁”还有不同的截断方法。

程序需要几个函数:

直线和直线的交点
... [/B]


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

使用道具 举报

发表于 2002-4-29 20:10:00 | 显示全部楼层
有一个半成品看看吧!有些地方还没完成,给点建议

  1. (vl-load-com)
  2. (defun CONVPOLY_1 (/ PLINETYPE A AAA NA EN TT $FLG$ OBJ OBJJ ENT)
  3.   (command "_.undo" "_group")
  4.   (setq HOLDPTYPE (getvar "PLINETYPE"))
  5.   (setvar "CMDECHO" 0)
  6.   (setvar "PLINETYPE" 1)
  7.   (setq AAA (ssadd))
  8.   (setq EN1 (ssget '((0 . "line,*polyline,arc,spline,ellipse,circle"))))
  9.   (setq EN (ssget "p" '((0 . "line,*polyline,arc"))))
  10.   (if (/= EN NIL)
  11.     (progn
  12.       (setq NA (sslength EN)
  13.             TT 0
  14.       )
  15.       (repeat NA
  16.         (if (or        (= "LINE" (cdr (assoc 0 (entget (ssname EN TT)))))
  17.                 (= "ARC" (cdr (assoc 0 (entget (ssname EN TT)))))
  18.             )
  19.           (progn
  20.             (command ".PEDIT" (ssname EN TT) "Y" "X")
  21.             (ssadd (entlast) AAA)
  22.           )
  23.         )
  24.         (if
  25.           (or (= "POLYLINE" (cdr (assoc 0 (entget (ssname EN TT)))))
  26.               (= "LWPOLYLINE" (cdr (assoc 0 (entget (ssname EN TT)))))
  27.           )
  28.            (ssadd (ssname EN TT) AAA)
  29.         )
  30.         (setq TT (+ TT 1))
  31.       )
  32.       (setq $FLG$ t)
  33.       (setq OBJ (sslength AAA))
  34.       (setq OBJJ OBJ)
  35.       (repeat OBJ
  36.         (setq ENT (ssname AAA (- OBJ 1)))
  37.         (setq EN (entget ENT))
  38.         (if $FLG$
  39.           (princ "\rProcessing... >-x-<                       ")
  40.           (princ "\rProcessing... -<->-                       ")
  41.         )
  42.         (setq $FLG$ (not $FLG$))
  43.         (if (and (or (= (cdr (assoc 0 EN)) "LWPOLYLINE")
  44.                      (= (cdr (assoc 0 EN)) "POLYLINE")
  45.                  )
  46.                  (= (cdr (assoc 70 EN)) 0)
  47.             )
  48.           (command "_.PEDIT" ENT "J" AAA "" "X")
  49.         )
  50.         (setq OBJ (- OBJ 1))
  51.       )                                       
  52.       (command "_.SELECT" AAA "")
  53.       (setq OBJ (sslength (ssget "P")))
  54.       (princ
  55.         (strcat        "\n"
  56.                 (itoa OBJJ)
  57.                 " Objects(line/arc/polyline/lwpolyline) change to "
  58.                 (itoa OBJ)
  59.                 " POLYLINES.\n"
  60.         )
  61.       )
  62.     )
  63.   )
  64.   (setq A 0)
  65.   (setvar "PLINETYPE" HOLDPTYPE)
  66.   (command "_.undo" "_end")
  67.   (princ)
  68. )

  69. (defun DO_IT (/ LLL SS)
  70.   (setq SS (ssadd))
  71.   (ssadd (entlast) SS)
  72.   (setq LLL (entnext ENTT))
  73.   (while (not (eq LLL (entlast)))
  74.     (ssadd LLL SS)
  75.     (setq LLL (entnext LLL))
  76.   )
  77.   SS
  78. )

  79. (defun C:DDLINE        (/ ER AA ENTT ERN)
  80.   (if (/= A2 NIL)
  81.     (setvar "offsetdist" A2)
  82.   )
  83.   (setq A2 (getvar "offsetdist"))
  84.   (if (= A2 -1)
  85.     (progn
  86.       (setq
  87.         AA (getdist
  88.              (strcat "\nOffset total distance or Through <Through>: ")
  89.            )
  90.       )
  91.     )
  92.     (progn
  93.       (setq AA (getdist        (strcat        "\nOffset total distance or Through <"
  94.                                 (rtos (getvar "offsetdist"))
  95.                                 ">: "
  96.                         )
  97.                )
  98.       )
  99.     )
  100.   )
  101.   (if (= AA NIL)
  102.     (setq AA (getvar "offsetdist"))
  103.   )
  104.   (setq A2 AA)
  105.   (setq ENTT (entlast))
  106.   (CONVPOLY_1)
  107.   (if (not (eq (entlast) ENTT))
  108.     (setq ER (DO_IT))
  109.   )
  110.   (if (/= ER NIL)
  111.     (command "_.select" ER EN1 "")
  112.     (command "_.select" EN1 "")
  113.   )
  114.   (setq ER (ssget "p"))
  115.   (setq ENTT (entlast))
  116.   (CCC ER)
  117.   (setq ER NIL)
  118.   (if (not (eq (entlast) ENTT))
  119.     (setq ER (DO_IT))
  120.   )
  121.   (setq ENTT (entlast))
  122.   (if (/= ER NIL)
  123.     (command "_.REGION" ER "")
  124.   )
  125.   (if (not (eq (entlast) ENTT))
  126.     (progn
  127.       (setq ER (DO_IT))
  128.       (setq ERN (sslength ER))
  129.     )
  130.     (setq ERN 0)
  131.   )
  132.   (if (> (+ ERN (sslength YY)) 1)
  133.     (command "_.UNION" ER YY "")
  134.   )
  135.   (princ)
  136. )

  137. (defun CCC (SS / AX AY HOLDPICK        N A A10        AA10 AA40 AA51 ANG PT1 BB LL SSN
  138.             E AAA)
  139.   (setq HOLDPICK (getvar "pickbox"))
  140.   (setvar "pickbox" 0)
  141.   (setvar "osmode" 0)
  142.   (setq YY (ssadd))
  143.   (setq N 0)
  144.   (repeat (sslength SS)
  145.     (setq A (ssname SS N))
  146.     (setq A0 (cdr (assoc 0 (entget A))))
  147.     (cond
  148.       ((= A0 "CIRCLE")
  149.        (setq AA10 (cdr (assoc 10 (entget A))))
  150.        (setq AA40 (cdr (assoc 40 (entget A))))
  151.        (setq PT1 (polar AA10 0 (+ AA40 0.1)))
  152.        (command "_.offset" (/ AA 2) A AA10 "")
  153.        (command "_.REGION" (entlast) "")
  154.        (setq 1A10 (entlast))
  155.        (command "_.offset" (/ AA 2) A PT1 "")
  156.        (command "_.REGION" (entlast) "")
  157.        (command "_.SUBTRACT" "L" "" 1A10 "")
  158.        (ssadd (entlast) YY)
  159.       )
  160.       ((= A0 "ELLIPSE")
  161.        (setq AA10 (cdr (assoc 10 (entget A))))
  162.        (setq AX (cadr (assoc 11 (entget A))))
  163.        (setq AY (caddr (assoc 11 (entget A))))
  164.        (setq AA40 (sqrt (+ (* AX AX) (* AY AY))))
  165.        (setq PT1 (polar AA10 0 (+ AA40 0.1)))
  166.        (if (and
  167.              (equal 0 (cdr (assoc 41 (entget A))) 0.00001)
  168.              (equal 6.28319 (cdr (assoc 42 (entget A))) 0.00001)
  169.            )
  170.          (progn
  171.            (command "_.offset" (/ AA 2) A AA10 "")
  172.            (command "_.REGION" (entlast) "")
  173.            (setq 1A10 (entlast))
  174.            (command "_.offset" (/ AA 2) A PT1 "")
  175.            (command "_.REGION" (entlast) "")
  176.            (command "_.SUBTRACT" "L" "" 1A10 "")
  177.            (ssadd (entlast) YY)
  178.          )
  179.          (progn
  180.            (command "_.offset" (/ AA 2) A AA10 "")
  181.            (setq 1A10 (vlax-curve-getstartpoint
  182.                         (vlax-ename->vla-object (entlast))
  183.                       )
  184.            )
  185.            (setq 1A20 (vlax-curve-getendpoint
  186.                         (vlax-ename->vla-object (entlast))
  187.                       )
  188.            )
  189.            (command "_.offset" (/ AA 2) A PT1 "")
  190.            (setq 2A10 (vlax-curve-getstartpoint
  191.                         (vlax-ename->vla-object (entlast))
  192.                       )
  193.            )
  194.            (setq 2A20 (vlax-curve-getendpoint
  195.                         (vlax-ename->vla-object (entlast))
  196.                       )
  197.            )
  198.            (command "_.LINE" 1A10 2A10 "")
  199.            (command "_.LINE" 1A20 2A20 "")
  200.          )
  201.        )
  202.       )
  203.       ((= A0 "SPLINE")
  204.        (setq A10 (cdr (assoc 10 (entget A))))
  205.        (setq ANG (angle '(0 0 0) A10))
  206.        (setq PT1 (polar A10 ANG 0.1))
  207.        (setvar "PICKBOX" 1)
  208.        (setq AAA (nentselp PT1))
  209.        (setvar "PICKBOX" 0)
  210.        (setq SSN (car AAA))
  211.        (setq E (entget SSN))
  212.        (setq PT1 (cdr (assoc 10 E)))
  213.        (command "_.OFFSET" (/ AA 2) SSN PT1 "")
  214.        (setq 1A10 (cdr (assoc 10 (entget (entlast)))))
  215.        (setq 1A20 (cdr (assoc 10 (reverse (entget (entlast))))))
  216.        (command "_.OFFSET" AA (ssget "L") PT1 "")
  217.        (setq 2A10 (cdr (assoc 10 (entget (entlast)))))
  218.        (setq 2A20 (cdr (assoc 10 (reverse (entget (entlast))))))
  219.        (command "_.LINE" 1A10 2A10 "")
  220.        (command "_.LINE" 1A20 2A20 "")
  221.       )
  222.       ((= A0 "LWPOLYLINE")
  223.        (setq AQ (entget A))
  224.        (setq A70 (cdr (assoc 70 AQ)))
  225.        (setq 1A10 (cdr (assoc 10 AQ)))
  226.        (setq 1A20 (cdr (assoc 10 (reverse AQ))))
  227.        (if (/= A70 1)
  228.          (progn
  229.            (setq A10 (cdr (assoc 10 AQ)))
  230.            (setq ANG (angle '(0 0 0) A10))
  231.            (setq PT1 (polar A10 ANG 0.1))
  232.            (setvar "PICKBOX" 1)
  233.            (setq AAA (nentselp PT1))
  234.            (setvar "PICKBOX" 0)
  235.            (setq SSN (car AAA))
  236.            (setq E (entget SSN))
  237.            (setq PT1 (cdr (assoc 10 E)))
  238.            (command "_.OFFSET" (/ AA 2) SSN PT1 "")
  239.            (setq TMP (entget (entlast)))
  240.            (setq 1A10 (cdr (assoc 10 TMP)))
  241.            (setq 1A20 (cdr (assoc 10 (reverse TMP))))
  242.            (command "_.OFFSET" AA (ssget "L") PT1 "")
  243.            (setq TMP (entget (entlast)))
  244.            (setq 2A10 (cdr (assoc 10 TMP)))
  245.            (setq 2A20 (cdr (assoc 10 (reverse TMP))))
  246.            (command "_.LINE" 1A10 2A10 "")
  247.            (command "_.LINE" 1A20 2A20 "")
  248.          )
  249.          (progn
  250.            (setq A10 (cdr (assoc 10 AQ)))
  251.            (setq ANG (angle '(0 0 0) A10))
  252.            (setq PT1 (polar A10 ANG 0.1))
  253.            (setvar "PICKBOX" 1)
  254.            (setq AAA (nentselp PT1))
  255.            (setvar "PICKBOX" 0)
  256.            (setq SSN (car AAA))
  257.            (setq E (entget SSN))
  258.            (setq PT1 (cdr (assoc 10 E)))
  259.            (command "_.OFFSET" (/ AA 2) SSN PT1 "")
  260.            (setq TMP11 (entlast))
  261.            (setq ATMP11
  262.                   (vlax-curve-getarea (vlax-ename->vla-object TMP11))
  263.            )
  264.            (command "_.OFFSET" AA (ssget "L") PT1 "")
  265.            (setq TMP22 (entlast))
  266.            (setq ATMP22
  267.                   (vlax-curve-getarea (vlax-ename->vla-object TMP22))
  268.            )
  269.            (command "_.REGION" TMP11 "")
  270.            (setq 1A10 (entlast))
  271.            (command "_.REGION" TMP22 "")
  272.            (setq 1A20 (entlast))
  273.            (if (> ATMP11 ATMP22)
  274.              (command "_.SUBTRACT" 1A10 "" 1A20 "")
  275.              (command "_.SUBTRACT" 1A20 "" 1A10 "")
  276.            )
  277.            (ssadd (entlast) YY)
  278.          )
  279.        )
  280.       )
  281.       ((= A0 "POLYLINE")
  282.        (setq AQ (entget A))
  283.        (setq A70 (cdr (assoc 70 AQ)))
  284.        (if (/= A70 1)
  285.          (progn
  286.            (setq A10 (nth 0 (GETPL A)))
  287.            (setq ANG (angle '(0 0 0) A10))
  288.            (setq PT1 (polar A10 ANG 0.1))
  289.            (setvar "PICKBOX" 1)
  290.            (setq AAA (nentselp PT1))
  291.            (setvar "PICKBOX" 0)
  292.            (setq SSN (car AAA))
  293.            (setq E (entget SSN))
  294.            (setq PT1 (cdr (assoc 10 E)))
  295.            (command "_.OFFSET" (/ AA 2) SSN PT1 "")
  296.            (setq PL (GETPL (entlast)))
  297.            (setq 1A10 (nth 0 PL))
  298.            (setq 1A20 (nth 0 (reverse PL)))
  299.            (command "_.OFFSET" AA (ssget "L") PT1 "")
  300.            (setq PL (GETPL (entlast)))
  301.            (setq 2A10 (nth 0 PL))
  302.            (setq 2A20 (nth 0 (reverse PL)))
  303.            (command "_.LINE" 1A10 2A10 "")
  304.            (command "_.LINE" 1A20 2A20 "")
  305.          )
  306.          (progn
  307.            (setq PL (GETPL A))
  308.            (setq A10 (nth 0 PL))
  309.            (setq ANG (angle '(0 0 0) A10))
  310.            (setq PT1 (polar A10 ANG 0.1))
  311.            (setvar "PICKBOX" 1)
  312.            (setq AAA (nentselp PT1))
  313.            (setvar "PICKBOX" 0)
  314.            (setq SSN (car AAA))
  315.            (setq E (entget SSN))
  316.            (setq PT1 (cdr (assoc 10 E)))
  317.            (command "_.OFFSET" (/ AA 2) SSN PT1 "")
  318.            (setq TMP11 (entlast))
  319.            (setq ATMP11
  320.                   (vlax-curve-getarea (vlax-ename->vla-object TMP11))
  321.            )
  322.            (command "_.OFFSET" AA (ssget "L") PT1 "")
  323.            (setq TMP22 (entlast))
  324.            (setq ATMP22
  325.                   (vlax-curve-getarea (vlax-ename->vla-object TMP22))
  326.            )
  327.            (command "_.REGION" TMP11 "")
  328.            (setq 1A10 (entlast))
  329.            (command "_.REGION" TMP22 "")
  330.            (setq 1A20 (entlast))
  331.            (if (> ATMP11 ATMP22)
  332.              (command "_.SUBTRACT" 1A10 "" 1A20 "")
  333.              (command "_.SUBTRACT" 1A20 "" 1A10 "")
  334.            )
  335.            (ssadd (entlast) YY)
  336.          )
  337.        )
  338.       )
  339.     )
  340.     (command "_.ERASE" A "")
  341.     (setq N (1+ N))
  342.   )
  343.   (setvar "pickbox" HOLDPICK)
  344. )

  345. (defun GETPL (ED / E PL P10)
  346.   (setq E (cdr (assoc -1 (entget ED))))
  347.   (while (setq E (entnext E))
  348.     (if        (setq P10 (cdr (assoc 10 (entget E))))
  349.       (setq PL (cons P10 PL))
  350.     )
  351.   )
  352.   (reverse PL)
  353. )
  354. (prompt "\nType ddline")
  355. (princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-2 21:45:41 | 显示全部楼层
先“偏移”,在偏移的线找交点,交点处断开相交的两直线,再寻找与原来直线相交的线,删除它。ok。
可以看看我写的道路程序,大部分可以实现,不过还有一些小毛病。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-10 03:39:02 | 显示全部楼层
俺在line时的处理:
1。用线型定义墙厚,一目了然。
2。偏移。不用多说,各位办法多多。
3。根据交点和开门窗点计算,形成开口端表。
4。根据端点的交叉情况,处理端点。
5,由端点和开口表entmake line线。

优点:只对中线处理,中线也好检查,
成功率》tch,《abd5.0,它对弧线
的处理也相当稳定。对于复杂交接
和重线情况基本上不用调整修改。(附图)

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2002-5-10 11:39:04 | 显示全部楼层
xd这里可能某些字符是格式符,吞字,写的字
和显的字不一样,说的意思拧了。

老菜的程序中对弧线开口的处理没考虑,而不是
“对弧线 的处理也相当稳定”---想着
头痛也犯懒。很久了,就是加不上弧线部分。:)

不过直线部分成功率还算高,看看附图,如果用tch3.0,
不知会漏几根线。实际上用fillet,break在捕捉时
很容易出错,包括abd2.0~3.5的版本。

我程序中最关键的函数实际上是abd
的left(判断点在线的左上右的,明经那儿也登了,他
还说是无名氏,呵呵)。

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

使用道具 举报

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

使用道具 举报

发表于 2002-5-11 06:24:06 | 显示全部楼层
我定义墙中线的理由:

用线型定义,一目了然,所以以前用xdata记录,
后来开倒车用复杂线型。因为常用的墙厚就几种,
60,90,100,120,180,200,240,370,
也写过输墙厚在acad.lin文件中加线型定义的程序,
作为临时增加。这几个常用线型在样板图中始终存在。

所有的操作只对中线进行,即使重线,只要重线
是一样的墙厚,变双结果一样。

墙中偏移,在当年用archtlt时,就发现虽然可以
定义墙偏移,但是一旦copy,mirror,线的头尾
点可能不如所愿,造成反偏移,而且未变双看不
出来,变双后再检查又很麻烦。所以我取消偏移,
当然也简化了程序。

单线变双,我感觉最好的是abd5.0和得赛,成功率
都相当高;tch3.0的水平和abd早期版本差不多,稍
微复杂就容易漏线,乱连。不过得赛的D版少见,abd
的操作麻烦。所以当时决定自己写一个,花了3天初稿,
补充测试15天,但是没加入弧线部分,因为弧线部分
连门窗的定义方式都没确定。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-11 22:22:57 | 显示全部楼层
快加油啊,老菜,看在我们500年前是一家的份上:—)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 14:39 , Processed in 0.556180 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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