明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6275|回复: 27

【求洞口线的绘制】已解决!~~

    [复制链接]
发表于 2011-6-29 10:34 | 显示全部楼层 |阅读模式
本帖最后由 daidong013 于 2011-7-5 22:52 编辑

经常用到画洞口线,求这样的洞口线绘制工具!~~

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-9-11 19:56 | 显示全部楼层
zhynt 发表于 2011-6-29 14:26
坐在板凳上给你写:

能支持框选吗  批量画洞口并且填充
发表于 2023-1-7 10:42 | 显示全部楼层
zhynt 发表于 2011-6-29 14:26
坐在板凳上给你写:

能支持点选空间就好了   更快捷
 楼主| 发表于 2011-6-29 13:21 | 显示全部楼层
自己坐个沙发@!~顶一下!~~
发表于 2011-6-29 14:26 | 显示全部楼层
坐在板凳上给你写:

  1. (defun err (s)
  2.   (if (and
  3.         (/= s "console break")
  4.         (/= s "Function cancelled")
  5.         (/= s "quit/exit abort")
  6.       )
  7.     (progn
  8.       (setvar "LUPREC" oldlup)
  9.       (setvar "LUNITS" oldlun)
  10.       (setvar "osmode" oldos)
  11.       (setvar "cmdecho" oldcmd)
  12.       (setvar "clayer" oldlay)
  13.       (setq *error* olderr)
  14.       (princ (strcat "\n程序出错或用户退出:" s))
  15.     )
  16.   )
  17. )
  18. (defun bak ()
  19.   (command "_.undo" "be")
  20.   (setq        oldos        (getvar "osmode")
  21.         oldcmd        (getvar "cmdecho")
  22.         oldlun        (getvar "LUNITS")
  23.         oldlup        (getvar "LUPREC")
  24.         olderr        *error*
  25.         *error*        err
  26.         oldlay        (getvar "clayer")
  27.   )
  28. )
  29. (defun rebak ()
  30.   (setvar "osmode" oldos)
  31.   (setvar "cmdecho" oldcmd)
  32.   (setvar "clayer" oldlay)
  33.   (setvar "LUPREC" oldlup)
  34.   (setvar "LUNITS" oldlun)
  35.   (command "_.undo" "e")
  36. )
  37. (setq real 20.0)
  38. (defun c:dk (/                dk_pt1          dk_pt2    dk_pt3    dk_pt4
  39.               dk_kd        nk_pt1          nk_pt2    nk_pt3    nk_pt4
  40.               olds        oldcmd          oldlup    oldlay    nk_n
  41.               nk_kd        ptax          ptay            ptaz      ptbx
  42.               ptby        ptbz          l_pt1_pt4 l_pt2_pt3 l_n
  43.               ang_pt1_pt4
  44.              )
  45.   (bak)  
  46.   (setvar "cmdecho" 0)
  47.   (setvar "LUPREC" 8)
  48.   (setvar "LUNITS" 2)
  49.   (if (= (TBLOBJNAME "LAYER" "PUB_HATCH") nil)
  50.     (command "layer" "m" "PUB_HATCH" "c" "8" "" "")
  51.   )
  52.   (if (= (TBLOBJNAME "LAYER" "PUB_DIM") nil)
  53.     (command "layer" "m" "PUB_DIM" "c" "3" "" "")
  54.   )
  55.   (setq dk_pt1 (getpoint "\n指定第一角点:[退出]"))
  56.   (if (/= dk_pt1 nil)
  57.     (progn
  58.       (setq dk_pt3 (getcorner dk_pt1 "\n指定第二角点:[退出]"))
  59.       (if (/= dk_pt3 nil)
  60.         (progn
  61.           (setq        dk_real
  62.                  (getreal
  63.                    (strcat "\n输入边框宽度:<"
  64.                            (rtos real 2 4)
  65.                            ">:"
  66.                    )
  67.                  )
  68.           )
  69.           (if (= dk_real nil)
  70.             (setq dk_real real)
  71.             (setq real dk_real)
  72.           )
  73.           (setq        dk_ptn (list (min (car dk_pt1) (car dk_pt3))
  74.                              (min (cadr dk_pt1) (cadr dk_pt3))
  75.                        )
  76.                 dk_pt3 (list (max (car dk_pt1) (car dk_pt3))
  77.                              (max (cadr dk_pt1) (cadr dk_pt3))
  78.                        )
  79.                 dk_pt1 dk_ptn
  80.           )
  81.           (setq        ptax (car dk_pt1)
  82.                 ptay (cadr dk_pt1)
  83.                 ptbx (car dk_pt3)
  84.                 ptby (cadr dk_pt3)
  85.           )
  86.           (setq        dk_pt2 (list ptax ptby)
  87.                 dk_pt4 (list ptbx ptay)
  88.                 dk_pt5 (polar dk_pt2 (/ (* pi 7.0) 4) (* dk_real (sqrt 2)))
  89.           )
  90.           (if (< oldos 16384)
  91.             (setvar "osmode" (+ oldos 16384))
  92.           )
  93.           (setvar "clayer" "pub_dim")
  94.           (command "_.pline" dk_pt1 dk_pt2 dk_pt3 dk_pt5 "C")
  95.           (setq dk_ss (entlast))
  96.           (command "_.BHATCH" "s" dk_ss "" "la" "pub_hatch" "p" "s" "")
  97.         )
  98.       )
  99.     )
  100.   )
  101.   (rebak)
  102.   (princ)
  103. )
 楼主| 发表于 2011-6-29 14:49 | 显示全部楼层
本帖最后由 daidong013 于 2011-6-29 15:08 编辑

回复 zhynt 的帖子

还是Z版大侠热心!~~程序不错!~~
就是画的时候出现以下情况,有pl框但填充没有另外捕捉也失效了!~~是什么问题?~~~(请教)要怎么改!~


指定第一角点:[退出]
指定第二角点:[退出]
输入边框宽度:<20>:

需要二维角点或选项关键字。

程序出错或用户退出:函数被取消
指定内部点或
[特性(P)/选择对象(S)/绘图边界(W)/删除边界(B)/高级(A)/绘图次序(DR)/原点(O)]:

图案填充间距太密,或短划尺寸太小。

再请教一下:如果直接填充改成solid的填充可能不会出现这样的问题了吧?
或者能设一下填充的样式、比例、和角度!


发表于 2011-6-29 15:08 | 显示全部楼层
本帖最后由 zhynt 于 2011-6-29 15:11 编辑

我是在2012上写的,以前版本BHATCH选项与现在的不一样,所以出问题了。
这是2012的bhatch选项:
[特性(P)/选择对象(S)/绘图边界(W)/删除边界(B)/高级(A)/绘图次序(DR)/原点(O)/注释性(AN)/图案填充颜色(CO)/图层(LA)/透明度(T)]:
2008的选项:
[特性(P)/选择对象(S)/绘图边界(W)/删除边界(B)/高级(A)/绘图次序(DR)/原点(O)/注释性(AN)]:
 楼主| 发表于 2011-6-29 15:10 | 显示全部楼层
本帖最后由 daidong013 于 2011-6-29 15:12 编辑

回复 zhynt 的帖子

那要怎么改一下呢?
或者能设一下填充的样式、比例、和角度再不行就把填充改成solid!~~
发表于 2011-6-29 15:20 | 显示全部楼层
请将
(command "_.BHATCH" "s" dk_ss "" "la" "pub_hatch" "p" "s" "")
替换改为

  1. (if (= (substr (getvar "acadver") 1 2) "18")
  2.             (command "_.BHATCH"        "s" dk_ss "" "la" "pub_hatch" "p" "s" "")
  3.             (progn
  4.               (setvar "clayer" "pub_hatch")
  5.               (command "_.BHATCH" "s" dk_ss "" "p" "s" "")
  6.             )
  7.           )
发表于 2011-6-29 15:21 | 显示全部楼层
回复 daidong013 的帖子

我设的就是solid
 楼主| 发表于 2011-6-29 15:38 | 显示全部楼层
回复 zhynt 的帖子

可以了!~~感谢啊!~~Z版大侠应该成为版主!~~
活雷锋!~~对您表示敬意!~~
 楼主| 发表于 2011-6-29 15:58 | 显示全部楼层
再请教一下!~~如果要改填充图案式样要在那里改!~~
( 图案样式ANSI31---比例100---角度为0 )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 04:17 , Processed in 0.202758 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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