明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: yefei812678

求一个单纯的洞口线插件

[复制链接]
 楼主| 发表于 2024-1-5 10:16:03 | 显示全部楼层

能不能改成 直接在矩形里点就可以   能不能设置线型
发表于 2024-1-7 08:31:23 | 显示全部楼层
看看了解哈
发表于 2024-1-9 15:55:49 | 显示全部楼层
  1. (defun c:dk( / mydefunction dk_bili dk_min dk_layer)
  2.         (setq dk_bili 0.2 ;引线比例
  3.                         dk_min 50 ;折线最小距离
  4.                         dk_layer "SE_HOLE"
  5.         );;变量设置
  6.         (if (not (tblsearch "LAYER" "SE_HOLE"))
  7.                 (progn
  8.                         (entmake (list '(0 . "LAYER")
  9.                                                                 '(100 . "AcDbSymbolTableRecord")
  10.                                                                 '(100 . "AcDbLayerTableRecord")
  11.                                        '(70 . 0)
  12.                                        '(62 . 201)
  13.                                        '(6 . "Continuous")
  14.                                        '(2 . "SE_HOLE")))
  15.                 )
  16.         )
  17.         (defun dk::draw_dk(/ dis dx x y pt2 pt3 dk_distance);(hcl_make_rec p1 p2 "0" 1 40)
  18. ;                (setq dk_distance (* (distance pt1 pt0) (- 0.5 dk_bili))
  19. ;                                pt2 (point_mid pt0 pt1)
  20. ;                                pt2 (polar pt2 (- pi (angle pt0 pt1)) dk_distance)
  21. ;                )
  22.                 (setq dis (* (min (abs (- (car pt1) (car pt0))) (abs (- (cadr pt1) (cadr pt0)))) dk_bili)
  23.                                 dis (max dis dk_min)
  24.                 )
  25.                 (if (< (car pt0) (car pt1))
  26.                         (setq dx dis)
  27.                         (setq dx (- dis))
  28.                 )
  29.                 (setq x (+ (car pt0) dx))

  30.                 (if (< (cadr pt0) (cadr pt1))
  31.                         (setq dx dis)
  32.                         (setq dx (- dis))
  33.                 )
  34.                 (setq y (- (cadr pt1) dx)
  35.                                 pt2 (list x y)
  36.                 )


  37.                 (entmake (list
  38.                                         '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 8 dk_layer)
  39.                                         '(90 . 3) '(43 . 0)
  40.                                         (cons 10 pt0) (cons 10 pt2) (cons 10 pt1)
  41.                                         )
  42.                 )
  43.                 (if dk_has_rec
  44.                         (dk::make_rec)
  45.                 )
  46.         )
  47.         (defun dk::make_rec();(hcl_make_rec p1 p2 "0" 1 40)
  48.                 (entmake (list
  49.                                         '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 8 dk_layer)
  50.                                         '(90 . 4) '(70 . 1) '(43 . 0)
  51.                                         (list 10 (car pt0) (cadr pt0)) (list 10 (car pt0) (cadr pt1))
  52.                                         (list 10 (car pt1) (cadr pt1)) (list 10 (car pt1) (cadr pt0))
  53.                         )
  54.                 )
  55.         )
  56.         (defun dk_print_parm( / tip_rec)
  57.                 (initget 0 "F")
  58.                 (if dk_has_rec
  59.                         (setq tip_rec "有轮廓")
  60.                         (setq tip_rec "无轮廓")
  61.                 )
  62.                 (princ (strcat "\n【标注洞口】\n  当前模式:" tip_rec
  63.                         ))
  64.         )
  65.         (defun mydefunction(/ pt0 pt1)
  66.                 ;;begin mydefunction
  67.                 (dk_print_parm)
  68.                 (while (setq pt0 (getpoint "\n  第一点[F切换模式]:"))
  69.                         (cond
  70.                                 ((= "F" pt0)
  71.                                         (setq dk_has_rec (not dk_has_rec))
  72.                                 )
  73.                                 (t
  74.                                         (if (setq pt1 (getpoint pt0 "\n  第二点:"))
  75.                                                 (progn
  76.                                                         (dk::draw_dk)
  77.                                                 )
  78.                                         )
  79.                                 )
  80.                         )
  81.                         (dk_print_parm)
  82.                 )
  83.         )
  84.         (setvar 'cmdecho 0)
  85.         (mydefunction)
  86.         (setvar 'cmdecho 1)
  87.         (prin1)
  88. )
 楼主| 发表于 2024-1-16 16:31:49 | 显示全部楼层
没有人支持下嘛?
 楼主| 发表于 2024-1-17 09:06:47 | 显示全部楼层

没有人支持下嘛?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 07:11 , Processed in 0.159103 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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