乐筑天下

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

[编程交流] 坡度例行程序

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:01:25 | 显示全部楼层 |阅读模式
你好,我是这方面的新手,我只是需要一个lisp例程来绘制一个斜率。
 
我已经试过很多了,但效果不好。
 
谢谢
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 00:07:42 | 显示全部楼层
你能给我们提供更多细节吗?并尽可能具体。非常感谢。
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:08:22 | 显示全部楼层
好的,我尝试了很多例程,但它们带来了“这不是一条多段线”的信息,但事实上,我指出的这条线是一条多段线。
 

                               
登录/注册后可看大图
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 00:13:43 | 显示全部楼层
试试这个
  1. Code:
  2. ;|--------------Inclination of line-------------------
  3.                q_|_|| _\|| q_|| _\|                  
  4.                                                      
  5. يقوم بتحديد ميل الخط من خلال اختيار نقطتين عليه      
  6.                   و من الممكن ان يختار المستخدم      
  7.                بين ان يرسم خط بين النقطتين او لا      
  8.                                                      
  9. ------------------------------------------------------
  10. Author: Hasan M. Asous, 2010                        
  11. Copyright © 2010 by HasanCAD, All Rights Reserved.  
  12. Contact: HasanCAD @ TheSwamp.org,                  
  13.           asos2000 @ CADTutor.net                    
  14.           [email="HasanCAD@gmail.com"]HasanCAD@gmail.com[/email]                        
  15. ------------------------------------------------------
  16. Version: 1     20 Oct 2010                          
  17. ____________________________________________________|;
  18. ;     q_|_|| _\|| q_|| _\|     ;
  19. ;       Mainroutine Start      ;
  20. (defun c:TanLine (/ p1 p2 p3)
  21. ; @ HasanCAD
  22. (vl-load-com)
  23. (HSN:DDwnMnuSetSysVar)
  24. (and
  25.    (setq doc (cond (doc) ((vla-get-ActiveDocument (vlax-get-Acad-Object)))))
  26.    (setq spc (if (zerop (vla-get-activespace doc))
  27. (if (= (vla-get-mspace doc) :vlax-true) (vla-get-modelspace doc) (vla-get-paperspace doc))
  28. (vla-get-modelspace doc)))
  29.    )
  30. (if (not TL-sel) (setq TL-sel "Points"))
  31. (initget "select Line or Points")
  32. (setq TL-sel (cond ( (getkword (strcat "\nChoose  هل تريد تحديد خط او اختيار نقطتين [Line/Points] <" TL-sel ">: ") ) ) ( TL-sel ) ))
  33. (if (equal TL-sel "Points")
  34.    (progn
  35.      (and
  36. (setq p1 (trans (getpoint "\nFirst Point اختار النقطة الاولى على الخط ")1 0))
  37.        (setq p2 (trans (getpoint p1 "\nSecond Point اختار النقطة الثانية على الخط")1 0))
  38.        (setq p3 (trans (getpoint "\nText insertion Point قم بتحديد مكان النص")1 0))
  39.        )
  40.      (setq tan2 (/ (- (cadr p2) (cadr p1)) (- (car p2) (car p1))))
  41.      (IF (< 1000 (ABS (- (cadr p2) (cadr p1))))
  42. (setq h 220)
  43. (if (< 100 (ABS (- (cadr p2) (cadr p1))))
  44.   (setq h 22)
  45.   (setq h 2.2)))
  46.      (if (not TL-Line) (setq TL-Line "Yes"))
  47.      (initget "Yes No")
  48.      (setq TL-Line (cond ( (getkword (strcat "\nChoose هل تريد رسم خط بين النقطتين [Yes/No] <" TL-Line ">: ") ) ) ( TL-Line ) ))
  49.      (if (equal TL-Line "Yes")
  50. (progn
  51.   (HSN:TL-Text h)
  52.          (HSN:TL-Line)
  53.   )
  54. (progn
  55.   (HSN:TL-Text h)
  56.   )
  57. )
  58.      )
  59.    (progn
  60.      (setq TL:SS (entget (car (entsel))))
  61.      (if (and
  62.     (equal TL-sel "Line")
  63.     (equal (cdr (assoc 0 TL:SS)) "LINE")
  64.     )
  65. (Progn   
  66.          (setq p1 (cdr (assoc 10 TL:SS)))
  67.          (setq p2 (cdr (assoc 11 TL:SS)))
  68.   (setq p3 (trans (getpoint "\nText insertion Point قم بتحديد مكان النص")1 0))
  69.   (setq tan2 (/ (- (cadr p2) (cadr p1)) (- (car p2) (car p1))))
  70.   (HSN:TL-Text)
  71.   )
  72. (progn
  73.   (princ "\n  PLease Seect a line or Points")
  74.   )
  75. )
  76.      )
  77.    )
  78. (HSN:ReDDwnMnuSetSysVar)
  79. (vla-EndUndoMark ActDoc)
  80. )
  81. ;     q_|_|| _\|| q_|| _\|     ;
  82. ;       Mainroutine End        ;
  83. ;     q_|_|| _\|| q_|| _\|     ;
  84. ;       Subroutine Start       ;
  85. (defun *error* (msg)
  86. (and uFlag (vla-EndUndoMark doc))
  87. (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  88.      (princ (strcat "\n** Error: " msg " **")))
  89. (princ)
  90. )
  91. (defun HSN:DDwnMnuSetSysVar ()
  92. ; @ HasanCAD
  93. (setq OldOS (getvar "osmode"))
  94. (setq OldDynmode (getvar "dynmode"))
  95. (setq OldDynprompt (getvar "dynprompt"))
  96. (setvar "osmode" 33)
  97. (setvar "dynmode" 1)
  98. (setvar "dynprompt" 1)
  99. (setvar "cmdecho" 0)      
  100. )
  101. (defun HSN:ReDDwnMnuSetSysVar ()
  102. ; @ HasanCAD
  103. (setq *error* TERR$)
  104. (setvar "osmode" OldOS)
  105. (setvar "dynmode" OldDynmode)
  106. (setvar "dynprompt" OldDynprompt)
  107. )
  108. (defun HSN:TL-Text (H)
  109. ; @ HasanCAD
  110.       (entmakex (list
  111.     (cons 0 "TEXT")
  112.                   (cons 10  p3)
  113.                   (cons 40 H)
  114.                   (cons 1 (strcat (rtos (abs (* tan2 100))2 2) "%"))
  115.     ))
  116. )
  117. (defun HSN:TL-Line ()
  118. ; @ HasanCAD
  119.       (entmake (list
  120.    (cons 0 "LINE")
  121.                  (cons 10 p1)
  122.                  (cons 11 p2)
  123.    ))
  124. )
  125. ;     q_|_|| _\|| q_|| _\|     ;
  126. ;        Subroutine End        ;
  127. (princ "\n  TanLine.lsp ~ Copyright © by HasanCAD")
  128. (princ "\n     ...Type TanLine to Invoke...   ")
  129. (princ)
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:16:56 | 显示全部楼层
 
 
您的例程没有返回之前调整过的动态输入。
第一次开始例行程序时,点的选项不起作用。
例程结束时返回错误。。。
 
 
为什么不根据直线旋转斜率或选定点旋转插入文字。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:19:39 | 显示全部楼层
此外,以下所有系统变量也没有像以前那样重新设置。
请再次检查您的例行程序。
 
谢谢
 
塔瓦特
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 00:22:18 | 显示全部楼层
谢谢塔瓦的回复
 
你能帮我修复这个错误吗
我能处理的第二条评论
 
谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:23:37 | 显示全部楼层
 
不客气。
 
看看这个,如果你有任何问题,不要犹豫。
 
享受代码。
 
塔瓦特
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:28:15 | 显示全部楼层
代码很棒,它给了你正确的答案(斜坡阅读)
 
我希望得到4位小数的答案,并且可以选择插入文本或显示阅读信息。
 
谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:32:56 | 显示全部楼层
 
你用过哪种方法,对你有用?(职位编号)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:31 , Processed in 0.743324 second(s), 75 queries .

© 2020-2025 乐筑天下

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