乐筑天下

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

[编程交流] 英尺英寸的脚本可能

[复制链接]

3

主题

17

帖子

14

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:48:30 | 显示全部楼层 |阅读模式
尊敬的各位:,
我正在搜索:
我在drg中有很多尺寸。,我必须这样写:10'-0“x 12'-6”,就像这样。
我们所有人都必须面对这样的写作问题,通过按住shift键并按下键盘上的“按钮”来输入10,然后输入“然后签名-然后再次签名0”。
你不觉得这需要我们很多时间吗?
我想要一个vba或lisp脚本,无论它是什么,都可以完成以下工作:
Finding-sign in the text and then macro将插入“sign before-sign and at end of string it will enter”。
易于理解的
但是怎么做呢?
pl.帮助
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:56:04 | 显示全部楼层
从DISTANCE命令开始,然后从答案中取整数,因此有两个变量作为数字,10和6实际上是0.5
 
如果你选择了三个点,这就给了双方,或者你可以选择两条线,这是你的选择。
 
然后使用RTOS real to string和STRCAT连接应答,然后只使用文本命令
 
这是一个开始学习如何编写lisp等的好例子,而不是我写代码,但这是一个开始,如果你不亲自发布代码,你就不会学习,帮助也会随之而来。
 
未经测试的代码
  1. ; dist of two lines as text
  2. (setq pt1 (getpoint "\nPick first point .."))
  3. (setq pt2 (getpoint "\nPick second point .."))
  4. (setq pt3 (getpoint "\nPick third point .."))
  5. (setq dist1 (distance Pt1 Pt2))
  6. (setq dist2 (distance Pt1 Pt2))
  7. (setq dist1main (- (fix dist1) dist1))
  8. (setq dist1rem (- dist1main dist1))
  9. (setq text1 (rtos dist1main 2 0))  
  10. (setq text2 (rtos dist1rem 2 0))
  11. (setq sqtext (strcat text1 "x" text2))
  12. (princ sqtext)
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:02:11 | 显示全部楼层
工具栏按钮:我有一个并排命名为字母、数字和符号的工具栏,每个工具栏都有这个宏
其中*是符号,即A_^H“_^H”
 
它所做的是将第一个字符加上_传递到命令提示符,然后调用backspace。只要继续选择带有相应字母/符号的按钮,直到按enter键为止,你就只会得到第一个字符,就像“A”上面的字符一样。
 
你也可以在写作时使用单词/句子。
 
还有像这样的东西
  1. (defun c:test (/ l a z y)
  2. (setvar 'Dynmode -3)
  3. (cond ((and
  4.    (setq l (nentsel "\nSelect Text:"))
  5.    (setq a (assoc 1 (entget (car l))))
  6.    (setq z (cdr a))
  7.    (progn
  8.      (setq Y (getstring T (strcat "\nEnter New String <" z "> :")))
  9.      (vla-put-textstring
  10.        (vlax-ename->vla-object (car l))
  11.        (if (null y)
  12.   z
  13.   y
  14.        )
  15.      )
  16.    )
  17. )
  18. )
  19. )
  20. (setvar 'Dynmode 3)
  21. (princ)
  22. )

 
再一次,这是另一个懒惰打字员综合症的例子,就像我的大多数人一样。那么,为什么不为他们写一封信呢
回复

使用道具 举报

3

主题

17

帖子

14

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 09:10:02 | 显示全部楼层
尊敬的各位:,
我想要的是这样:
  1. ;Labels a lot's area using the Boundary command. LPS 2008-10
  2. (defun c:LA () ;(/ cl txtst txtsz oldecho oldsnap B ac sf kw)
  3. (setq temperr *error*);store *error*
  4. (setq *error* errortrap);reassign *error*
  5. (setq cl (getvar "clayer")
  6. txtst (getvar "textstyle")
  7. txtsz (getvar "textsize")
  8. oldecho (getvar "cmdecho")
  9. oldsnap (getvar "osmode")
  10. );setq
  11. (setvar "cmdecho" 0)
  12. (command "-style" "SIMPLEX" "simplex.shx" "0" "0.9" "0" "n" "n" "n")
  13. (setq ip (getpoint "\nPick internal point: "))
  14. (command "-layer" "m" "calc" "c" "63" "calc" "p" "n" "calc" "")
  15. (command "-boundary" ip "")
  16. (command "region" (entlast) "")
  17. (setq b (entlast))
  18. (command "area" "o" b)
  19. (setq ac (strcat (rtos (/ (getvar "area") 0.0929) 2 3) " Sq.Ft."))
  20. (setq sf (strcat (rtos (getvar "area") 2 2) " SQ.M."))
  21. (setq per (strcat (rtos (getvar "perimeter") 2 2) " M."))
  22. (command "-layer" "m" "LOT-AREA" "c" "53" "" "")
  23. (command "text"
  24. "s"
  25. "simplex"
  26. "c"
  27. ip
  28. (* 0.2 (getvar "dimscale"))
  29. "0"
  30. sf
  31. )
  32. (command "text" "" ac)
  33. (command "text" "" per)
  34. (initget "Yes No")
  35. (setq kw (getkword "\nErase boundary Yes/No? <Yes>"))
  36. (if
  37. (= kw nil)
  38. (command "erase" b "")
  39. ) ;if
  40. (command "textstyle" txtst)
  41. (setvar "clayer" cl)
  42. (setvar "textsize" txtsz)
  43. (setvar "cmdecho" oldecho)
  44. (setvar "osmode" oldsnap)
  45. (setq *error* temperr)
  46. (princ)
  47. );defun c:
  48. ;==========ERROR TRAP=================
  49. (defun errortrap (msg) ;define function
  50. (setvar "textstyle" txtst)
  51. (setvar "textsize" txtsz)
  52. (setvar "clayer" cl)
  53. (setvar "cmdecho" oldecho) ;restore variables
  54. (setvar "osmode" oldsnap)
  55. (setq *error* temperr) ;restore *error*
  56. (prompt "\nResetting System Variables ") ;inform user
  57. (princ)
  58. );defun
  59. ;==========ERROR TRAP=================
  60. (prompt "\nLotArea.lsp loaded, type LA to run")
  61. (princ)

 
在这种情况下,当我输入命令LA,然后通过单击封闭的形状,我立即得到其面积和外围。
 
同样,我想要这样的代码:
 
点击正方形或矩形形状,我应该得到写在形状中心的尺寸,如下所示:
10'-0“x 12'-6”
我认为这应该是可能的,当然只有在你的帮助下!!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:14:19 | 显示全部楼层
边界创建了一条pline,因此需要通过两种方式了解左下角和右上角
 
您可以遍历pline顶点并计算cnr min和cnr max,从而得到L&H
 
我想这里有一个“包围盒”的要求,它应该做你想要的。
 
当你列出一个区域时,它给出了框边界,现在可以使用VLA找到变量?
 
第二次搜索其他帖子找到了吗?我想这是你想要的
 
http://www.cadtutor.net/forum/showthread.php?62559-当前图形的边界框&高亮显示=边界
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:19:46 | 显示全部楼层
哇。我对OP请求的理解还差得很远
回复

使用道具 举报

3

主题

17

帖子

14

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 09:24:50 | 显示全部楼层
  1. ;;--------------=={ SelectionSet BoundingBox }==--------------;; ;;                                                            ;; ;;  Returns the lower-left and upper-right points of a        ;; ;;  rectangle bounding all objects in a supplied SelectionSet ;; ;;------------------------------------------------------------;; ;;  Author: Lee Mac, Copyright © 2011 - www.lee-mac.com       ;; ;;------------------------------------------------------------;; ;;  Arguments:                                                ;; ;;  ss - SelectionSet for which to return the BoundingBox     ;; ;;------------------------------------------------------------;; ;;  Returns:  Point List decribing BoundingBox (in WCS)       ;; ;;------------------------------------------------------------;;  (defun LM:SSBoundingBox ( ss / i l1 l2 ll ur )     (repeat (setq i (sslength ss))         (vla-getboundingbox (vlax-ename->vla-object (ssname ss (setq i (1- i)))) 'll 'ur)         (setq l1 (cons (vlax-safearray->list ll) l1)               l2 (cons (vlax-safearray->list ur) l2)         )     )     (mapcar '(lambda ( a b ) (apply 'mapcar (cons a b))) '(min max) (list l1 l2)) )

 
我已复制文件并将其另存为ssbox。lsp,然后将其粘贴到dwg中。文件但我可以在命令行上写什么命令;我不明白
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:26:50 | 显示全部楼层
只需加载SSbox,然后再加载SSboundingbox。请参阅LM:SSboundingbox这是一个函数名
 
不要将代码粘贴到DWG中
 
或者在lisp just(ssboundingbox)中
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:37:32 | 显示全部楼层
 
Vipulogos,
 
SelectionSet BoundingBox是一个需要参数的函数,而不是程序本身。我的网站上提供了一个示例程序来演示如何调用该函数。将函数和示例程序复制到文件或VLIDE编辑器窗口中,并加载这两部分。
 
此外,尽可能提供到原始代码的链接,而不是复制代码。既然你在论坛或我的网站上找到了这段代码,请链接到你找到它的地方,而不是在这里复制代码。
 
回复

使用道具 举报

3

主题

17

帖子

14

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 09:40:12 | 显示全部楼层
尊敬的各位:,
我在这段时间里损失了几天,但我今天再次开始解决这个问题,但什么也没有发生。如何获得lisp代码,通过该代码,我可以单击由四行创建的矩形,并且尺寸将按照所附的drg进行书写。
 
事实上,原始代码已根据我的要求进行了轻微更改,因此,我已将其完全粘贴
示例1.dwg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:14 , Processed in 0.439328 second(s), 83 queries .

© 2020-2025 乐筑天下

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