乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 38|回复: 19

[编程交流] 绘制相交线

[复制链接]

40

主题

177

帖子

100

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
248
发表于 2022-7-5 22:43:05 | 显示全部楼层 |阅读模式
嗨,伙计们,谢谢你们的帮助!
 
234308dnnmn5en34wb503w.jpg
234313mpknvmgdiuvmin3m.png
234314gppzs6s0pf7pkwsl.jpg
234316adjktad11pnk4j43.jpg
234320kekz1k1hkprrm4p2.jpg
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 22:48:24 | 显示全部楼层
假设有两个圆柱体,彼此居中相交,也可以是任何具有矩形立面的三维物体,如长方体、棱柱体。。。完成任务的最佳方法是制作三维实体并找到并集、减法或交集,然后在立面视图上使用flatshot命令。。。在使用实体建模操作(减法、并集、相交)之前,请确保在三维空间(位置)中正确建模两个三维实体。。。
 
Marko Ribar,d.i.a.(拱门)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 22:49:40 | 显示全部楼层
Marko_ribar和你一样,我只是创建实体,如果需要的话,你会如何将线型添加到曲面上,我有几个想法,在主要零件的并集减法之前,将挤出的微小圆添加到实体对象中?我更改了显示网格参数?
 
234324ioe1woviib1ipe6i.jpg
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 22:53:01 | 显示全部楼层
@马尔科。vla布尔?

                               
登录/注册后可看大图

*编辑:IMG已重新加载
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 22:56:25 | 显示全部楼层
我想我们都不知道这张海报上交错的线条意味着什么。
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:00:20 | 显示全部楼层
我的2美分在3D概念,我希望我能理解指间
 
修订:1.0@2014年7月22日
命令:测试
  1. ;hanhphuc @cadtutor 15/07/14
  2. ;Draw interfingering?
  3. ;http://www.cadtutor.net/forum/showthread.php?87594-Draw-Interfingering-lines
  4. ;Revision: 1.0        22/07/2014
  5. ;flatshot idea suggested by Marko Ribar        
  6. ;debugging....
  7. (defun C:TEST (/ *error*  oldecho p l d e ab solid ro 2D)
  8. (defun *error* (msg)
  9.    (if        (not (wcmatch (strcase msg) "*CANCEL*,*EXIT*"))
  10.      (princ (strcat "\nError: " msg))
  11.      ) ;_ end of if
  12.    (princ)
  13.    ) ;_ end of defun
  14. (terpri)
  15. (setq oldecho (getvar "cmdecho"))
  16. (setvar "cmdecho" 0)
  17. (setq        *user* (hp# 'getdist
  18.             '(6 6 )
  19.             '("\nDiameter of horizontal cylinder "
  20.               "\nDiameter of branch cylinder "
  21.                      )
  22.             *user*
  23.             ) ;_ end of hp#
  24. d (* (car *user*) 2.)
  25. ro (getorient "\nBranch angle in degrees : ")
  26. p '(0. 0. 0.)
  27.    
  28. solid
  29. (mapcar        '(lambda (r a b c / ab)
  30.    (apply 'vla-Rotate3D
  31.           (append (cons        (setq ab (vla-AddCylinder *mspace* (vlax-3d-point a) (/ r 2.) b))
  32.                         (mapcar        '(lambda (x) (vlax-3d-point x))
  33.                                 '((0. 0. 0.) (0. 1. 0.)) ;(car (split *user* 2 t))
  34.                                 ) ;_ end of mapcar
  35.                         ) ;_ end of cons
  36.                   (list c)
  37.                   ) ;_ end of append
  38.           ) ;_ end of apply
  39.    ab
  40.    ) ; lambda
  41. *user* ;diameter
  42. (list '(0. 0. 0.) (list (car p) (cadr p) (+ (caddr p) (car *user*))))
  43. (list (* d 2) d)
  44. (list (/ pi 2.)
  45.       (if ro
  46.         (- (* 2.5 pi) ro)
  47.         0.0
  48.         ) ;_ end of if
  49.       )
  50. ) ; mapcar
  51.    ); setq
  52. (initget "Yes No y n")
  53. (setq 2D (getkword "\nMake solid 3D [Yes/No]? <No> : "))
  54. (if (or(= 2D "No")(not 2D ))
  55. (progn
  56. (command "_vpoint" "0,-1,0");
  57. (vl-cmdf "flatshot" "" (getvar "viewctr") 1 1 0 )
  58. (if solid
  59. ('((x) (vla-boolean (cadr x) 2 (car x)));acSubtraction
  60. solid))
  61. (vl-cmdf "flatshot" "" (getvar "viewctr") 1 1 0 )
  62. (entdel (vlax-vla-object->ename (cadr solid )))
  63. (command "_vpoint" "0,0,0");
  64. )
  65. (progn
  66. ('((x) (vla-boolean (car x) 2 (cadr x)))
  67. solid)
  68. (command "vpoint" "1,-1,1")
  69. (command "_VSCURRENT" "Conceptual")
  70.    )
  71. );if
  72. (setvar "cmdecho" oldecho)
  73. (princ "\nDone..")
  74. (princ)
  75. ) ;_ end of defun
  76. (if (null *user*)
  77. (setq *user* '(10. 9.0 ) )
  78. ) ; variable global
  79. (princ "\nhanphuc@cadtutor 2014. Command: TEST")
  80. (princ)
  81. (vl-load-com)
  82. (setq *mspace* (vla-get-modelspace (vla-get-ActiveDocument(vlax-get-acad-object))))
  83. ;;;----------------------------------------------------               
  84. ;;;                                                               
  85. ;; courtesy of the author's of "Inside AutoLisp"               
  86. ;; for rel. 10 published by New Riders Publications                
  87. ;; Referenced to the concept of UREAL UKWORD,                       
  88. ;; which inspired me make this utility #hp                       
  89. ;; also thanks to ymg the way of handling variable in list       
  90. ;;                                                                
  91. ;HP# ; user prompt for numbers by hanhphuc 2014
  92. (defun hp# (_f _ini _msg _def  / usr l)
  93. (if (and
  94. (member _f '(getreal getint getdist))
  95.          (vl-every '(lambda (x) (= (type x) 'INT)) _ini )
  96.   )
  97.    (progn (setq usr (mapcar '(lambda ( i a b) (initget i)
  98.                 ((eval _f) (strcat a " < "(rtos b) " > : ")))
  99.                      _ini
  100.                      _msg
  101.                      _def
  102.                      ) ;_ end of mapcar
  103.          ) ; setq
  104.    (while usr
  105.      (setq l (cons (if (null (car usr))
  106.                         (car _def)
  107.                         (car usr)
  108.                         ) ;_ end of if
  109.                       l
  110.                       ) ;_ end of cons
  111.            usr        (cdr usr)
  112.            _def        (cdr _def)
  113.            ) ;_ end of setq
  114.      l
  115.      ) ;_ end of while
  116.    (reverse l)
  117.    ) ;_ end of progn
  118.    ) ;_ end of if
  119. ) ;_ end of defun
  120. ;sub function: split
  121. ;http://www.cadtutor.net/forum/showthread.php?87320-Break-a-list-in-two-sub-lists&highlight=Split+list
  122. (defun split (lst len opt / ls l i) ; opt, T= by division or nil=by length
  123. (setq i 1 l '() len (if opt (/ (length lst) len) len))
  124. (while lst
  125.    (setq l (append  l (list(car lst))))
  126.    (if
  127.    (zerop (rem i len))
  128. (setq ls (cons l ls) l nil)
  129.    )
  130.    (setq i (1+ i) lst (cdr lst))
  131. ) ;_ end of foreach
  132. (if l
  133.    (append (reverse ls) (list  l))
  134.    (reverse ls)
  135. ) ;_ end of if
  136. ) ;_ end of defun
回复

使用道具 举报

40

主题

177

帖子

100

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
248
发表于 2022-7-5 23:03:40 | 显示全部楼层
 
非常感谢!hanhphuc,
但我不明白,你能上传一个演示文件(Gif文件)吗
 
制作GIF演示软件:http://www.cockos.com/licecap/
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-5 23:06:14 | 显示全部楼层
这是过去的一些东西。
 
  1. (defun c:tj (/ d1 d2 ud2 uu1 apdeg apr ap r1 r2 a b c d e f e1 cp1)
  2. (command "_.undo" "_begin")
  3. (setq osn (getvar "osmode"))
  4. (setvar "cmdecho" 0)
  5. (setq oerr *error*)
  6. (defun *error* (msg)
  7.    (setvar "osmode" osn)
  8.    (princ "\n Function cancelled - Try again ")
  9.    (setq *error* oerr)
  10.    (command)
  11.    (princ)
  12. )
  13. (princ "\n Straight pipe diameter < ")
  14. (if dd1
  15.    (princ dd1)                                ; prints default value
  16. )
  17. (princ " > ?? :")
  18. (setq d1 (getdist))
  19. (if (= d1 nil)
  20.    (setq d1 dd1)
  21. )
  22. (setq dd1 d1)
  23. (princ "\n Branch pipe diameter < ")
  24. (if dd2
  25.    (princ dd2)
  26. )                                        ; prints default value
  27. (princ " > ?? :")
  28. (setq d2 (getdist))
  29. (if (= d2 nil)
  30.    (setq d2 dd2)
  31. )
  32. (setq dd2 d2)
  33. (if (> d2 d1)
  34.    (progn
  35.      (alert
  36. " Branch pipe diameter must be equal or smaller than straight pipe\nSTART OVER"
  37.      )
  38.      (^c^c)
  39.    )
  40. )
  41. (if ud1
  42.    (setq ud2 (* (/ ud1 pi) 180))
  43. )
  44. (princ "\n Branch pipe entry angle < ")
  45. (if ud1
  46.    (princ ud2)                                ; prints default value
  47. )
  48. (princ " > ?? : ")
  49. (setq uu1 (getangle))
  50. (if (= uu1 nil)
  51.    (setq uu1 ud1)
  52. )
  53. (if (>= uu1 pi)
  54.    (progn
  55.      (alert "Angle must be smaller than 180 deg\nStart over")
  56.      (c^c^)
  57.    )
  58. )
  59. (if (= uu1 0)
  60.    (c^c^)
  61. )
  62. (setq ud1 uu1)
  63. (setq u1 (* (/ uu1 pi) 180))
  64. (setq apdeg 10.0)                        ;angle of precision
  65. (setq ap (/ (* apdeg pi) 180))
  66. (setq apr ap)
  67. (setq ip (getpoint "\n Curve insertion (left endpoint): "))
  68. (setq r1 (/ d1 2))
  69. (setq r2 (/ d2 2))
  70. (setvar "osmode" 0)
  71. (setq a (- r2 (* r2 (cos ap))))
  72. (setq b (/ a (sin uu1)))
  73. (setq c (* r2 (sin ap)))
  74. (setq d (- r1 (sqrt (- (expt r1 2) (expt c 2)))))
  75. (setq f (- b (/ d (tan uu1))))
  76. (setq cp1 (polar ip 0 f))
  77. (setq p1 (polar cp1 (* pi 1.5) d))
  78. (command "pline" ip "w" 0 0 p1 "")
  79. (setq e (entlast))
  80. (setq ap (+ ap apr))
  81. (while (< ap pi)
  82.    (setq a (- r2 (* r2 (cos ap))))
  83.    (setq b (/ a (sin uu1)))
  84.    (setq c (* r2 (sin ap)))
  85.    (setq d (- r1 (sqrt (- (expt r1 2) (expt c 2)))))
  86.    (setq f (- b (/ d (tan uu1))))
  87.    (setq cp1 (polar ip 0 f))
  88.    (setq p1 (polar cp1 (* pi 1.5) d))
  89.    (command "line" "" p1 "")
  90.    (setq e1 (entlast))
  91.    (command "pedit" e "j" e1 "" c^c^)
  92.    (setq ap (+ ap apr))
  93. )
  94. (command "pedit" e "f" "" c^c^)
  95. (setvar "osmode" osn)
  96. (command "rotate" e "" ip pause)
  97. (command "_.undo" "_end")
  98. (princ "\n\n\n\n Straight pipe dia = ")
  99. (princ d1)
  100. (princ "\n Branch pipe dia   = ")
  101. (princ d2)
  102. (princ "\n Branch pipe angle = ")
  103. (princ u1)
  104. (princ)
  105. )
回复

使用道具 举报

40

主题

177

帖子

100

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
248
发表于 2022-7-5 23:10:41 | 显示全部楼层
 
非常感谢paulmcz
 
但我不明白,你能上传一个演示文件(Gif文件)吗
 
制作GIF演示软件:http://www.cockos.com/licecap/
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:12:01 | 显示全部楼层
早上好,不客气
但你似乎不熟悉LISP?
您尝试阅读此链接,由
http://www.lee-mac.com/runlisp.html
有空的时候我会帮忙的,干杯
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 03:07 , Processed in 1.504784 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表