乐筑天下

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

[编程交流] 有人能帮我吗

[复制链接]

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:14:53 | 显示全部楼层 |阅读模式
嘿,我留下了前一个帖子,这里有点简单。
这是一个例程,它将生成一个表,其中有一个标题,其余单元格用于计算。该表有一列和15行。但当我执行该命令时,计算以十进制形式绘制。如果检查此表的属性,则单元格不是数据单元格。我可以在这个例程中放入什么来制作这些数据单元?这是目前最大的问题。所以我需要让它以英尺、英寸和分数来执行。然后,我希望有人的专业知识,使表插入在正确的大小。基于dimscale因子。有人能帮忙吗?
 
 
 
  1. (DEFUN C:STUBS (/ WIDE COL ROW TB HIGH PT VA VO VM)
  2. (SETQ PT (VLAX-3D-POINT (GETPOINT)))
  3. (SETQ VO (VLAX-GET-ACAD-OBJECT))
  4. (SETQ VA (VLA-GET-ACTIVEDOCUMENT VO))
  5. (SETQ VM (VLA-GET-MODELSPACE VA))
  6. (SETQ ROW 15)
  7. (SETQ COL  1)
  8. (SETQ HIGH 0.3875)
  9. (SETQ WIDE 1.25)
  10. (SETQ TB (VLA-ADDTABLE VM PT ROW COL HIGH WIDE))
  11. ;(VLA-PUT-REGENERATETABLESUPPRESSED TB :VLAX-TRUE)
  12. (vla-settext tb 0 0 "STUBS")
  13. (vla-settext tb 1 0 (GETDIST "What is the first stub dimension?"))
  14. (vla-settext tb 2 0 "=A2*2")
  15. (vla-settext tb 3 0 "=A2*3")
  16. (vla-settext tb 4 0 "=A2*4")
  17. (vla-settext tb 5 0 "=A2*4")
  18. (vla-settext tb 6 0 "=A2*5")
  19. (vla-settext tb 7 0 "=A2*6")
  20. (vla-settext tb 8 0 "=A2*7")
  21. (vla-settext tb 9 0 "=A2*8")
  22. (vla-settext tb 10 0 "=A2*9")
  23. (vla-settext tb 11 0 "=A2*10")
  24. (vla-settext tb 12 0 "=A2*11")
  25. (vla-settext tb 13 0 "=A2*12")
  26. (vla-settext tb 14 0 "=A2*13")
  27. (vla-settext tb 15 0 "=A2*14")
  28. )
  29. ;(vla-put-RegenerateTableSuppressed tb :vlax-TRUE )
  30. (princ)
  31. );_ end  

 
我的问题是,是否需要将标题行设置为特定的文本样式,而将其他单元格设置为不同的样式?
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 15:41:21 | 显示全部楼层
尝试编辑代码,不确定
它将如何工作
运行前更改文字样式名称
 
  1. (defun C:STUBS (/ col count dis pr prec 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 16)
  7. (setq col  1)
  8. (setq dis (getdist "\nWhat Is The First Stub Dimension? : "))
  9. (initget 6)
  10. (setq prec (getint "\nWhat Is The Number Of Decimal Places? : "))
  11. (setq pr (getvar "LUPREC"))
  12. (setvar "LUPREC" prec)
  13. (if (not (vl-string-search "." (setq strdis (rtos dis 2 2))))
  14.      (setq strdis (strcat strdis ".00")))
  15. (setq tb (vla-addtable vm pt row col 1 1))
  16. (vla-put-titlesuppressed tb :vlax-false)
  17. (vla-put-headersuppressed tb :vlax-true)
  18. (vla-put-RegenerateTableSuppressed tb :vlax-true)
  19. (vla-put-vertcellmargin tb 0.1)
  20. (vla-put-horzcellmargin tb 0.25)
  21. (vla-setrowheight tb 0 0.4825)
  22. (vla-setcolumnwidth tb 0 2.4)
  23. (vla-settextstyle tb actitlerow "Romans");title text style
  24. (vla-settextstyle tb acdatarow "Standard");data rows text style
  25. (vla-settextheight tb actitlerow 0.27);title text height = 0.27
  26. (vla-settextheight tb acdatarow 0.21);other cells text height = 0.21
  27. (vla-setalignment tb actitlerow acmiddlecenter);title alignment
  28. (vla-setalignment tb acdatarow acmiddleleft);data cell alignment
  29. (vla-settext tb 0 0 "STUBS");title text
  30. (setq count 1)
  31. (while (< count row)
  32. (vla-setrowheight tb count 0.3875)
  33. (if (=  count 1)
  34. (vla-settext tb count 0 strdis)
  35. (vla-settext tb count 0 (strcat "= A2*" (itoa count)))
  36.    )
  37. (setq count (1+ count)))
  38. (alert (vl-princ-to-string (vla-getcellformat tb (1- count) 0)))
  39. (vla-put-RegenerateTableSuppressed tb :vlax-false)
  40. (setvar "LUPREC" pr)
  41. (princ)
  42. );_ end
  43. (vl-load-com)

 
~'J'~
回复

使用道具 举报

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:54:10 | 显示全部楼层
嘿,我非常感谢你的帮助。我有一个关于修改这个代码的问题。它仍然是十进制的,是否需要放入vla setdatatype函数以使所有行具有体系结构并将当前精度设置为1/16?任何帮助都将不胜感激!!!
回复

使用道具 举报

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:14:27 | 显示全部楼层
好吧,我都弄明白了。所以现在我唯一的问题是把它插入到正确的dimscale
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 16:18:15 | 显示全部楼层
尝试编辑的版本
  1. (defun C:STUBS        (/ 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 16)
  7. (setq col 1)
  8. (setq dis (getdist "\nWhat Is The First Stub Dimension? : "))
  9. (setq lup (getvar "lunits"))
  10. (setvar "lunits" 4)                                  ; 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 3))
  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.1)
  21. (vla-put-horzcellmargin tb 0.25)
  22. (vla-setrowheight tb 0 0.4825)
  23. (vla-setcolumnwidth tb 0 2.725)
  24. (vla-settextstyle tb actitlerow "Romans")          ;title text style
  25. (vla-settextstyle tb acdatarow "Standard")          ;data rows text style
  26. (vla-settextheight tb actitlerow 0.27)          ;title text height = 0.27
  27. (vla-settextheight tb acdatarow 0.21)                  ;other cells text height = 0.21
  28. (vla-setalignment tb actitlerow acmiddlecenter) ;title alignment
  29. (vla-setalignment tb acdatarow acmiddleleft)          ;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 0.3875)
  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)

 
忘记了,请分享你的解决方案
与社区
 
~'J'~
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-30 12:23 , Processed in 0.834214 second(s), 62 queries .

© 2020-2025 乐筑天下

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