乐筑天下

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

[编程交流] 插入块而不是圆环

[复制链接]

28

主题

51

帖子

23

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 08:34:34 | 显示全部楼层 |阅读模式
尊敬的各位:,
我正在绘制道路布局图。在本图中,我使用一个lisp来获取风管的协调点。
我想根据我的使用情况更改lisp。
在这个lisp中,我想插入一个块对象,而不是甜甜圈。
随函附上此lisp的代码。
提前谢谢。
 
  1. (DEFUN C:TH ()
  2.        (SETQ h (GETDIST " \n Enter HEIGHT OF TEXT : "))
  3.        (setq  x (* 6 h))
  4.        (setq  y (* 12 h))
  5.        (setq  y1 (* 2 h))
  6.        (setq  z (/ h 2))
  7.        (SETQ CRN (GETPOINT "\n Enter Top Left Start corner for table: ")
  8.               angle (getangle "\n Pick Rotation Angle :")
  9.               ang (* angle 57.32484076)
  10.               NO (GETINT " \n Enter start number : ")
  11.               PNT (GETPOINT "\n Pick first coordinate: ")
  12.               CRN1 (POLAR CRN angle x)
  13.               CRN2 (POLAR CRN1 angle y))
  14.      (setq p1 (polar crn (+ angle 3.14) h)
  15.             p2 (polar crn1 (+ angle 3.14) h)
  16.             p3 (polar crn2 (+ angle 3.14) h)
  17.             p7 (polar p1 (+ angle 1.57) (* 2 h))
  18.             p8 (polar p2 (+ angle 1.57) (* 2 h))
  19.             p9 (polar p3 (+ angle 1.57) (* 2 h))
  20.             p10 (polar p7 (+ angle 1.57) (* 3 h))
  21.             p11 (polar p8 (+ angle 1.57) (* 3 h))
  22.             p12 (polar p9 (+ angle 1.57) (* 3 h))
  23.             p13 (polar p12 angle  y )
  24.             p14 (polar p9 angle  y )
  25.             Ins1 (polar crn (+ angle 1.57) (* 3 h))
  26.             Ins2 (polar crn1 (+ angle 1.57) (* 3 h))
  27.             Ins3 (polar crn2 (+ angle 1.57) (* 3 h)))
  28.       (command "regenauto" "off")
  29.       (WHILE PNT
  30.       (SETQ EPNT (RTOS (CAR PNT) 2 3)
  31.             NPNT (RTOS (CADR PNT) 2 3)
  32.             pnt1 (polar pnt (+ angle 0.7857142857) (* h 0.85))
  33.             CRN1 (POLAR CRN angle x)
  34.             CRN2 (POLAR CRN1 angle y))
  35.       (setq NO1 (RTOS no 2 0))
  36.       (SETQ NO2 (STRCAT "P" NO1))
  37.       (COMMAND "LAYER" "M" "ID" "C" "C" "" "")
  38.       (COMMAND "STYLE" "ITALICT" "ITALICT" H "1" "" "" "" "" )
  39.       (COMMAND "TEXT" pnt1 ang  NO2)
  40.       (COMMAND "DONUT" "0" z pnt "")
  41.       (COMMAND "TEXT" CRN ang  NO2)
  42.       (COMMAND "TEXT" CRN1 ang  EPNT)
  43.       (COMMAND "TEXT" CRN2 ang  NPNT)
  44.         (SETQ CRN (POLAR CRN (+ angle 4.712389) y1)
  45.             CRN1 (POLAR CRN1 (+ angle 4.712389) y1)
  46.             CRN2 (POLAR CRN2 (+ angle 4.712389) y1)
  47.             NO (1+ NO)
  48.             PNT (GETPOINT "\nPick next coordinate, or RETURN if done: "))
  49. )
  50. (setvar "osmode" 0)
  51. (setq p4 (polar crn (+ angle 3.14) h)
  52.      p5 (polar crn1 (+ angle 3.14) h)
  53.      p6 (polar crn2 (+ angle 3.14) h)
  54.      p15 (polar p6 angle  y ))
  55. (command "line" p10 p4 "")
  56. (command "line" p11 p5 "")
  57. (command "line" p12 p6 "")
  58. (command "line" p4 p15 "")
  59. (command "line" p7 p14 "")
  60. (command "line" p10 p13 "")
  61. (command "line" p13 p15 "")
  62. (setq h1 ( * 1.2 h))
  63. (COMMAND "STYLE" "ITALICT" "ITALICT" H1 "1" "" "" "" "" )
  64. (COMMAND "TEXT" ins1 ang  "Point")
  65. (COMMAND "TEXT" ins2 ang  "Easting")
  66. (COMMAND "TEXT" ins3 ang  "Northing")
  67. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 08:55:01 | 显示全部楼层
我已经将你的帖子转移到AutoLISP、Visual LISP和DCL论坛。希望你能在那里得到更多帮助。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:08:23 | 显示全部楼层
您使用了角度函数作为变量,但不建议使用该变量,尽管您没有对其和其他变量进行本地化。
例如。
 
  1. (SETQ CRN (GETPOINT "\n Enter Top Left Start corner for table: ")
  2.               [b][color="blue"]angle[/color][/b] (getangle "\n Pick Rotation Angle :")
  3.               ang (* angle 57.32484076)
  4.               NO (GETINT " \n Enter start number : ")
  5.               PNT (GETPOINT "\n Pick first coordinate: ")
  6.               CRN1 (POLAR CRN angle x)
  7.               CRN2 (POLAR CRN1 angle y))

 
必须在接下来的例行程序中纠正。。。
 
对于块的插入,由于您使用的是命令调用,我可以说使用这个。
更换此。
 
  1. (COMMAND "DONUT" "0" z pnt "")

 
用这个。
  1. (command "_.-insert" (put here the insertion point ) "" "" "")

 
最后,请本地化您的变量,以避免任何遗漏行为的例行程序。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 09:20:52 | 显示全部楼层
以下面的示例为例,填写所需信息,并用它替换甜甜圈行。
 
  1. (command "_.-insert" <blockname> <insertionpoint> <xscale> <yscale> <rotation>)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:23:42 | 显示全部楼层
也许更好
 
  1. [b][color=#0000ff]ang[/color][/b] (getangle "\n Pick Rotation Angle :")
  2.               ang (* ang 57.32484076)
  3. or just
  4. [b][color=#0000ff](setq ang[/color][/b] (* 57.32484076 (getangle "\n Pick Rotation Angle :")))
  5.             
回复

使用道具 举报

28

主题

51

帖子

23

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 09:35:20 | 显示全部楼层
尊敬的各位:,
我尝试了一些建议,上面提到的是作为对我帖子论坛的回复。
但我仍然无法获得输出。
让我试着通过附件pdf解释我的要求。
专家,请参阅附件
 
RRS1987
参考。pdf
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 09:00 , Processed in 0.527636 second(s), 73 queries .

© 2020-2025 乐筑天下

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