明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 依然小小鸟

[提问] 如何实现线与线之间的真正相交?

[复制链接]
发表于 2022-6-25 04:12:23 | 显示全部楼层
本帖最后由 lee50310 于 2022-6-26 12:25 编辑

可將找到24處懸空點表 再做 區分

(一) 單點懸空:在此點處無法找到其他物體 共3處  有一種類型

(二)雙點懸空: 在此點處可互相找到另一懸空點 共 ˋ4 處(8點)  有三種類型

(三)單點懸空+旁物(線):在此點處可找到另一線物體 共13處  有二種類型

如圖所示:

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2022-6-25 04:28:20 | 显示全部楼层
本帖最后由 lee50310 于 2022-8-23 09:27 编辑

用 TT6.LSP 程式 便是將這 測試圖中的 24個 懸空點 取出這三個區分 ,但還未做處理


此為程式的中的部分程式碼
  1. ;;by lee50310 2022/0624
  2. ;;
  3. (defun c:tt6( / ssd ss )
  4. (vl-load-com)
  5.     (makelayer "temp" 6)                                   ;;創建"temp"層 ,粉紅色
  6.     (del_aid_circle)                                       ;;清除之前輔助圓
  7.     (setq or_layer (getvar "clayer"))                      ;;取出目前工作層名
  8.     (setq os (getvar "osmode"))
  9.     (setvar "CMDECHO"0)   
  10.       (command "UNDO" "BE")     

  11.     (setq ssd (ssget '((0 . "arc,*line,ELLIPSE"))))
  12. ;;選擇集轉圖元表   
  13.     (setq ss((lambda (x) (vl-remove(last x) x))(mapcar 'cadr(ssnamex ssd))))
  14.     (or rrno1* (setq rrno1* 15.))
  15.     (setq rr (getdist (strcat "\n輸入圓圈半徑:<" (rtos rrno1* 2) ">: ")))
  16.     (if rr(setq rrno1* rr) (setq rr rrno1*))               
  17.     (setq ael nil bel nil cel nil)
  18. ;;<-- allpts 全部懸空點 點表  -->   
  19.    (setq allpts(get_dangling_point))
  20.    
  21. ;;<-- ael 單點懸空 點表-->   
  22.    (setq ael(get_one_point allpts))  
  23.    (setq zzael(remove_pp ael allpts))                     ;;從點表中移除單點懸空
  24.    
  25. ;;<-- bel 雙點懸空 點表-->   
  26.    (setq bel(get_two_point zzael))                          
  27.      (setq zel (append(mapcar 'car bel)(mapcar 'cadr bel)))
  28.    
  29. ;;<-- cel (單點懸空+旁物) 點表-->   
  30.    (setq cel(remove_pp zel cel))                          ;;從點表中移除雙點懸空   
  31.    
  32.      (command "zoom" "e")
  33.    (command "zoom" "0.8x")
  34.    (command "UNDO""end")
  35.    (setvar "expert" 0)
  36.    (setvar "osmode" os)
  37.      (setvar "clayer" or_layer)
  38.    
  39. );end_defun_tt6
  40. (princ "\n<<<***  執行指令:tt6   ***>>>")
  41. (princ)
  42. ;;----------------------------------------------------------------------------------
  43. ;;亮顯全部懸空數
  44. (defun c:ppa()
  45. (showpp allpts)
  46. (princ "\n亮顯全部懸空數")
  47. (princ)
  48. )
  49. ;;----------------------------------------------------------------------------------
  50. ;;亮顯單點懸空數
  51. (defun c:1pp()
  52. (showpp ael)
  53. (princ "\n亮顯單點懸空數")
  54. (princ)
  55. )
  56. ;;----------------------------------------------------------------------------------
  57. ;;亮顯雙點懸空數
  58. (defun c:2pp()
  59. (showpp zel)
  60. (princ "\n亮顯雙點懸空數")
  61. (princ)
  62. )
  63. ;;----------------------------------------------------------------------------------
  64. ;;亮顯(點懸空+旁物)數
  65. (defun c:1po()
  66. (showpp cel)
  67. (princ "\n亮顯(點懸空+旁物)數")
  68. (princ)
  69. )
  70. ;;----------------------------------------------------------------------------------
  71. ;;顯示懸空雙點之距離值
  72. (defun c:2dst()
  73. (princ "\n顯示懸空雙點之距離值= ")
  74. (dist bel)
  75. )
  76. ;;----------------------------------------------------------------------------------


本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2022-6-25 04:58:54 | 显示全部楼层
本帖最后由 lee50310 于 2023-5-27 04:15 编辑

用法 執行指令:TT6 框選全部圖形 輸入圓半徑15 後程式就已將此懸空點轉換好了
之後在執行下列指令:

<亮顯 全部懸空點>        指令 ppa     在螢幕亮顯出24處   存放於變數 allpts 中  查看方式在Command:!allpts

<亮顯 單點懸空>           指令 1pp     在螢幕亮顯出 3處    存放於變數 ael 中     查看方式在Command:!ael

<亮顯 雙點懸空>           指令 2pp     在螢幕亮顯出 4處(8點)    存放於變數 bel 中     查看方式在Command:!bel
                                    指令 2dst    兩懸空點距離值

<亮顯 單點懸空+旁物>  指令 1po     在螢幕亮顯出 13處    存放於變數 cel 中 查看方式在Command:!cel



本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2022-6-25 10:31:33 | 显示全部楼层
学习一下 拓展新思路
回复

使用道具 举报

 楼主| 发表于 2022-7-6 14:22:13 | 显示全部楼层
lee50310 发表于 2022-6-25 04:58
用法 執行指令:TT6  框選全部圖形 輸入圓半徑15 後程式就已將此懸空點轉換好了

  指令 ppa     在螢幕亮 ...

找到这些点之后可以 继续处理吗  让线相交
回复

使用道具 举报

发表于 2022-7-6 17:56:48 | 显示全部楼层
依然小小鸟 发表于 2022-7-6 14:22
找到这些点之后可以 继续处理吗  让线相交

區分成三種類型後 可 針對每個不同類型 做個別處理
回复

使用道具 举报

 楼主| 发表于 2022-7-8 08:45:36 | 显示全部楼层
lee50310 发表于 2022-7-6 17:56
區分成三種類型後 可 針對每個不同類型 做個別處理

不太会编程
回复

使用道具 举报

 楼主| 发表于 2022-8-21 12:04:12 | 显示全部楼层
lee50310 发表于 2022-6-25 04:58
用法 執行指令:TT6  框選全部圖形 輸入圓半徑15 後程式就已將此懸空點轉換好了

  指令 ppa     在螢幕亮 ...

有程序吗  我用你发的代码 不能用呢
回复

使用道具 举报

发表于 2022-8-22 08:48:25 | 显示全部楼层
xinxirong 发表于 2022-6-14 11:00
首先这肯定是要绘图标准化,没有严格的标准,怎么交付给下一道工序呢?
其次,如果下一道工序接手的人如果 ...

点赞!
绘图都给不好,想依靠写程序来解决。不知道怎么想的。
回复

使用道具 举报

发表于 2022-8-23 08:52:42 | 显示全部楼层
xinxirong 发表于 2022-6-14 11:00
首先这肯定是要绘图标准化,没有严格的标准,怎么交付给下一道工序呢?
其次,如果下一道工序接手的人如果 ...

受教了 ,机械里面有一个±估计就是这个意思,学习
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 10:21 , Processed in 0.177755 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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