乐筑天下

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

[编程交流] 插入块,添加圆,exlo

[复制链接]

32

主题

98

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 10:52:26 | 显示全部楼层 |阅读模式
我需要插入一个块
 
提示我输入块名称
提示我输入块的y比例
提示我块的总体大小
插入块
添加圆圈
分解块
创建包含圆的新块
 
请帮忙
 
  1. (defun C:fp (/ BlockName CmdEchoOld InsPt OsmodeOld Rot ScaleX ScaleXY
  2.        ScaleY)
  3. (vl-load-com)
  4. (setq CmdEchoOld (getvar "CMDECHO")
  5. OsmodeOld  (getvar "OSMODE")
  6. )
  7. (setvar "CMDECHO" 0)
  8. (SETVAR "OSMODE" 0)
  9. (setq BlockName (getstring T "\nEnter block name:  ")
  10. InsPt   (getpoint "Specify insertion point:  ")
  11.   ScaleX   (getreal "\nEnter X scale value:  ")  ;;; no need for this line as y always = 1
  12.         (setq fp(getdist"\nEnter the focal point: "))
  13.             (setq ns(getdist"\nEnter the ns point: "))
  14.                 ScaleY   (getreal "\nEnter Y scale value:  ")
  15.                 ScaleXY   (getreal "\nEnter overall scaling:  ")
  16.       Rot   (getreal "Specify rotation angle of the block :  ");;; no need for this line as the rotation is always 0
  17. )
  18. (vl-cmdf "._insert" BlockName InsPt ""ScaleY Rot)
  19. (vl-cmdf "._scale" "_L" "" InsPt ScaleXY)
  20. (setq fp3(list(-(car inspt)(fp))((cadr inspt))))
  21. (setq fp4(list(+(car inspt)(fps))(cadr inspt))))
  22. (setq ns1(list(car inspt)))(-(cadr inspt)(ns))))
  23. (setq ns2(list(car inspt)(ns))(+(cadr inspt)(ns))))
  24. (COMMAND "circle" fp3 2)
  25. (COMMAND "circle" fp4 2)
  26. (COMMAND "circle" ns1 2)
  27. (COMMAND "circle" ns2 2)
  28. (setvar "CMDECHO" CmdEchoOld)
  29. (setvar "OSMODE" OsmodeOld)
  30. (princ)
  31. )
  32. (princ)

115228i48991muihhhnkh5.jpg
回复

使用道具 举报

32

主题

98

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:05:58 | 显示全部楼层
我不知道用宏生成块是否可行。我不想在这个论坛上问一个大问题。我可以很容易地把它做成一个方块。
 
最大的帮助是画出4个圆。
 
我提供的代码是从3个不同的宏粘贴在一起的。这就是为什么它如此令人困惑。直到现在当我看到
 
  1. (setq fp3(list(-(car inspt)(fp))((cadr inspt))))
回复

使用道具 举报

10

主题

56

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 11:09:40 | 显示全部楼层
是的,你能把你用的积木的图纸发给我吗?
 
还包括要插入的圆圈,其中包括半径;)
穿过小圆的线需要修剪吗?
 
尊敬的先生
回复

使用道具 举报

32

主题

98

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:21:22 | 显示全部楼层
块就是圆。我插入它,缩放y轴(在本例中为0.5)
然后缩放块(本例中为5000)
添加圆(fp 3和4是椭圆的焦点)
并添加ns点
 
穿过ns2的线路不需要修剪。
4个圆的直径为总尺寸的0.04*
sdial。图纸
回复

使用道具 举报

32

主题

98

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:29:51 | 显示全部楼层
忘记附上此图纸
按比例缩放。图纸
回复

使用道具 举报

32

主题

98

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:40:20 | 显示全部楼层
我试图画出如上图所示的4个圆,但不断出现错误
 
 
  1. (defun c:fp2 ()
  2. (graphscr)
  3. (setq fp(getdist"\nEnter focal point: "))
  4. (setq ns(getdist"\nEnter ns point: "))
  5. (setq inspt(getpoint"\nPlace to add to the block :"))
  6. (setq p1(list(-(car inspt)(fp))(cadr inspt)))
  7. (setq p2(list(+(car inspt)(fp))(cadr inspt)))
  8. (setq p3(list (car inspt))(+(cadr inspt)ns)))
  9. (setq p4(list (car inspt))(-(cadr inspt)ns)))
  10.    
  11. (COMMAND "circle" p1 10)
  12. (COMMAND "circle" p2 10)
  13. (COMMAND "circle" p3 10)
  14. (COMMAND "circle" p4 10)
  15. )
回复

使用道具 举报

10

主题

56

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 11:48:05 | 显示全部楼层
好的,你可以在我下面的代码中添加圆圈,。。。
 
  1. (defun c:fp2 ()
  2. ;Made by rooky37
  3. ;Autocad The Netherlands
  4. ;Copyright © MR. CAD Mitchell Rodhouse
  5. ;;;;;;Thankfully to MR. CAD -Mitchell Rodhouse
  6. ;define the function
  7. (graphscr)
  8. ;*
  9. ;Save System Variables
  10. (setq oldsnap (getvar "osmode"))
  11. ;save snap settings
  12. (setq oldblipmode (getvar "blipmode"))
  13. ;save blipmode setting
  14. (setvar "cmdecho" 1)
  15. (setvar "INSUNITS" 4)
  16. ;*
  17. ;Switch OFF system Variables
  18. (setvar "osmode" 0)
  19. ;Switch OFF snap
  20. (setvar "blipmode" 0)
  21. ;Switch OFF Blipmode
  22. ;*
  23. ;get User Inputs
  24. (setq fp (getdist"\nEnter focal point: "))
  25. (setq ns (getdist"\nEnter ns point: "))
  26. ;*
  27. ;Get Insertion Point
  28. (setq inspt(getpoint"\nPlace to add to the block :"))
  29. (setvar "osmode" 32)
  30. ;switch ON snap
  31. (setvar "osmode" 0)
  32. ;switch OFF snap
  33. ;*
  34. ;Start of Polar Calculations
  35. (setq p1 (polar inspt (dtr -90.0) fp))
  36. (setq p2 (polar inspt (dtr 90.0) fp))
  37. (setq p3 (polar inspt (dtr 180.0) ns))
  38. (setq p4 (polar inspt (dtr 0.0) ns))
  39. ;End of the Polar calculations by MR. CAD - MITCHELL RODHOUSE
  40. ;*
  41. ;Start Command Function
  42.    
  43. (COMMAND "circle" p1 200
  44.      "circle" p2 200
  45.      "circle" p3 200
  46.      "circle" p4 200
  47.    
  48. ) ;End command
  49. ;End of Commands made by MR. CAD - MITCHELL RODHOUSE
  50. (setvar "osmode" 32)
  51. ;switch ON snap
  52. ;*
  53. ;Reset System Variable
  54. (setvar "osmode" oldsnap)
  55. ;Reset snap
  56. (setvar "blipmode" oldblipmode)
  57. ;Reset blipmode
  58. (setvar "cmdecho" 0)
  59. (princ "Copyright © - Written by MR. CAD")
  60. (setvar "cmdecho" 1)
  61. ;*
  62. (princ)
  63. ;finish cleanly
  64. ) ;end of defun
  65. ;*
  66. ;This function converts Degrees to Radians.
  67. (defun dtr (x)
  68. ;define degrees to radians function
  69. (* pi (/ x 180.0))
  70. ;divide the angle by 180 then
  71. ;multiply the result by the constant PI
  72. ) ;End of function
  73. ;*
  74. (princ) ;load cleanly
  75. ;*
  76. ;;HOPE THIS LISP WILL BE FUNCTIONAL FOR THE USER
  77. ;;MADE BY MR. CAD - MITCHELL RODHOUSE
  78. ;;END LISP

 
我可以从这一点做一个参考块,也可以包括一个给定位置的椭圆。。也可以将你的方块加载到一个给定的位置,然后将其分解。。。。嗯,我会尽力帮你。。。你不想插入圆圈的直径吗?
 
尊敬的先生
回复

使用道具 举报

32

主题

98

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:54:49 | 显示全部楼层
谢谢米切尔·罗德豪斯!
 
是的,我希望4个圆的直径为0.04*整体尺寸,但我现在不知道该怎么做
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 16:54 , Processed in 0.428162 second(s), 71 queries .

© 2020-2025 乐筑天下

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