乐筑天下

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

[编程交流] 如何使分数堆叠

[复制链接]

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:12:03 | 显示全部楼层 |阅读模式
在这个lisp中,结果是正确的,但一些挑剔的细节人员想知道它们是否可以堆叠。是否可以将vl函数合并到此表中以实现此目的?
 
 
  1. (defun C:stt (/ col count dis dmz lpc lup pt row strdis tb va vm vo)
  2. (setq pt (vlax-3d-point (getpoint "\nPick Insertion Point: ")))
  3. (setq vo (vlax-get-acad-object))
  4. (setq va (vla-get-activedocument vo))
  5. (setq vm (vla-get-modelspace va))
  6. (setq row (+ 1 (getreal "\nHow many Stubs? : ")))
  7. (setq col 1)
  8. (setq dis (getdist "\nWhat Is The First Stub Dimension? : "))
  9. (setq lup (getvar "lunits"))
  10. (setvar "lunits" 5)      ; architectural units
  11. (setq lpc (getvar "luprec"))
  12. (setvar "luprec" 4)      ;precision 1/16"
  13. (setq dmz (getvar "dimzin"))
  14. (setvar "dimzin" 1)      ;includes both feet and inches for primary unit
  15. (setq strdis (rtos dis 4 4))
  16. (setq tb (vla-addtable vm pt row col 1 1))
  17. (vla-put-titlesuppressed tb :vlax-false)
  18. (vla-put-headersuppressed tb :vlax-true)
  19. (vla-put-RegenerateTableSuppressed tb :vlax-true)
  20. (vla-put-vertcellmargin tb 0.5)
  21. (vla-put-horzcellmargin tb 0.5)
  22. (vla-setrowheight tb 0 4.5)
  23. (vla-setcolumnwidth tb 0 16.1)
  24. (vla-settextstyle tb actitlerow  "bold")   ;title text style
  25. (vla-settextstyle tb acdatarow  "STANDARD")   ;data rows text style
  26. (vla-settextheight tb actitlerow  2.5)   ;title text height = 0.27
  27. (vla-settextheight tb acdatarow  1.75)    ;other cells text height = 0.21
  28. (vla-setalignment tb actitlerow acmiddlecenter) ;title alignment
  29. (vla-setalignment tb acdatarow acmiddlecenter)   ;data cell alignment
  30. (vla-settext tb 0 0 "STUBS")     ;title text
  31. (setq count 1)
  32. (while (< count row)
  33.    (vla-setrowheight tb count 4.5)
  34.    
  35.    (if (= count 1)
  36.      (progn
  37.      (vla-settext tb count 0 strdis)
  38.      (vla-setcellformat tb count 0 "%lu4%pr4"));lu4 - format in architectural units, pr4 - precision is 1/16"
  39.      (progn
  40.      (vla-settext tb count 0 (strcat "= A2*" (itoa count)));lu4 - format in architectural units, pr4 - precision is 1/16"
  41.      (vla-setcellformat tb count 0 "%lu4%pr4")
  42.      )
  43.    )
  44.    (setq count (1+ count))
  45.    )
  46. (vla-put-RegenerateTableSuppressed tb :vlax-false)
  47. (setvar "luprec" lpc)
  48. (setvar "lunits" lup)
  49. (setvar "dimzin" dmz)
  50. (princ)
  51. ) ;_ end
  52. (vl-load-com)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:26:27 | 显示全部楼层
啊,又不是那张可怕的桌子了!!:冲击::冲击:
回复

使用道具 举报

3

主题

136

帖子

133

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 15:34:12 | 显示全部楼层
告诉挑剔的细节人员,他们非常欢迎修改代码来实现这一点。
回复

使用道具 举报

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:45:30 | 显示全部楼层
你知道这是我得到答案最快的一次了。hey Lee Mac没有自动缩放表格,只需将行高、列宽和文本大小设置为在24 X 36 dwg中工作,这是我们楼梯细节的标准,因此如果我必须使用更大的图纸,那么我将缩放它。搞清楚了。老兄,这个世界上没有人比我更厌倦看这个节目了。感谢一切是神圣的,不,如果他们想修复它,他们需要学习Lisp程序也!!!非常感谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:01:37 | 显示全部楼层
哈哈,你告诉他们吧
回复

使用道具 举报

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:11:17 | 显示全部楼层
那么,我该如何将其纳入例程中,将分数堆叠在表中?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:16:52 | 显示全部楼层
写这个是为了好玩
 
  1. (defun stacknum     (num den typ)
  2. (cond    ((= typ "D")
  3.     (setq txt (strcat "\{\\H0.7x;\\S" (itoa num) "#" (itoa den) ";\}")))
  4.    ((= typ "H")
  5.     (setq txt (strcat "\{\\H0.7x;\\S" (itoa num) "/" (itoa den) ";\}")))))
  6. (defun c:Fractionizer  (/ ss n1 n2 eLst txt ans)
  7. (if (and (setq ss (ssget '((0 . "MTEXT"))))
  8.       (setq n1 (getint "\nSpecify Numerator: "))
  9.       (setq n2 (getint "\nSpecify Denominator: ")))
  10.    (progn
  11.      (initget 1 "D H")
  12.      (setq ans (getkword "\nStacked Horizontally or Vertically? [H/D] : "))
  13.      (cond ((= ans "H")
  14.         (stacknum n1 n2 "H"))
  15.        ((= ans "D")
  16.         (stacknum n1 n2 "D")))
  17.      (setq eLst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
  18.      (foreach e  eLst
  19.    (entmod (subst (cons 1 txt) (assoc 1 (entget e)) (entget e)))))
  20.    (princ "\n<!> No Text Selected! <!>"))
  21. (princ))

 
应该给你一个线索
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 19:33 , Processed in 1.080624 second(s), 66 queries .

© 2020-2025 乐筑天下

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