乐筑天下

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

[编程交流] 我怎样才能在

[复制链接]

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:13:42 | 显示全部楼层 |阅读模式
嘿,我还在做这个Lisp程序的程序!它现在工作正常,但我需要它插入@正确的dimscale vla setautoscale不工作。我还能做什么?vla会校准吗?
 
  1. (defun C:STUBS2 (/ col count dis 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. (if (not (vl-string-search "" (setq strdis (rtos dis 4 4))))
  10.      (setq strdis (strcat strdis "")))
  11. (setq tb (vla-addtable vm pt row col 1 1))
  12. (vla-put-titlesuppressed tb :vlax-false)
  13. (vla-put-headersuppressed tb :vlax-true)
  14. (vla-put-RegenerateTableSuppressed tb :vlax-true)
  15. (vla-put-vertcellmargin tb 0.1)
  16. (vla-put-horzcellmargin tb 0.25)
  17. (vla-setrowheight tb 0 0.3875)
  18. (vla-setcolumnwidth tb 0 2.4)
  19. (vla-settextstyle tb actitlerow "bold");title text style
  20. (vla-settextstyle tb acdatarow "Standard");data rows text style
  21. (vla-settextheight tb actitlerow 0.27);title text height = 0.27
  22. (vla-settextheight tb acdatarow 0.21);other cells text height = 0.21
  23. (vla-setalignment tb actitlerow acmiddlecenter);title alignment
  24. (vla-setalignment tb acdatarow acmiddlecenter);data cell alignment
  25. (vla-setformat tb acdatarow "arch");data cell format
  26. (vla-settext tb 0 0 "STUBS");title text
  27. (setq count 1)
  28. (while (< count row)
  29. (vla-setcelltextstyle tb count 0 "Standard")  
  30. (vla-setcelldatatype tb count 0 acdouble acunitdistance);optional  
  31. (vla-setrowheight tb count 0.3875)
  32. (if (=  count 1)
  33. (vla-settext tb count 0 strdis)   
  34. (vla-settext tb count 0 (strcat "= A2*" (itoa count))))
  35. (setq count (1+ count)))
  36. (vla-put-RegenerateTableSuppressed tb :vlax-false)
  37. (princ)
  38. );_ end
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:18:12 | 显示全部楼层
这与此线程有关吗:
 
http://www.cadtutor.net/forum/showthread.php?t=31766
回复

使用道具 举报

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:21:24 | 显示全部楼层
是的,我只是对我能想到的每一个解决方案感到恼火。我试过(vla setscale tb(getvar“dimscale”))
和其他安排,但所有出来的命令提示符相同的语句太少的实际参数!所以我不知道,就像我说的,这是我第一次使用vla格式,所以我还不知道所有的基础知识。你知道该怎么办吗?
 
  1. (defun C:ST2(/ col count dis 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 "\How many stubs?")))
  7. (setq col  1)
  8. (setq dis (getdist "\What Is The First Stub Dimension? : "))
  9. (if (not (vl-string-search "" (setq strdis (rtos dis 4 4))))
  10.      (setq strdis (strcat strdis "")))
  11. (setq tb (vla-addtable vm pt row col 1 1))
  12. (vla-put-titlesuppressed tb :vlax-false)
  13. (vla-put-headersuppressed tb :vlax-true)
  14. (vla-put-RegenerateTableSuppressed tb :vlax-true)
  15. (vla-put-vertcellmargin tb 0.1)
  16. (vla-put-horzcellmargin tb 0.25)
  17. (vla-setrowheight tb 0 0.3875)
  18. (vla-setcolumnwidth tb 0 2.2)
  19. (vla-settextstyle tb actitlerow "bold");title text style
  20. (vla-settextstyle tb acdatarow "Standard");data rows text style
  21. (vla-settextheight tb actitlerow 0.27);title text height = 0.27
  22. (vla-settextheight tb acdatarow 0.21);other cells text height = 0.21
  23. (vla-setalignment tb actitlerow acmiddlecenter);title alignment
  24. (vla-setalignment tb acdatarow acmiddlecenter);data cell alignment
  25. (vla-setformat tb acdatarow "arch");data cell format
  26. (vla-settext tb 0 0 "STUBS");title text
  27. (setq count 1)
  28. (while (< count row)
  29. (vla-setcelltextstyle tb count 0 "Standard")  
  30. (vla-setcelldatatype tb count 0 acdouble acunitdistance);optional  
  31. (vla-setrowheight tb count 0.3875)
  32. (if (=  count 1)
  33. (vla-settext tb count 0 strdis)   
  34. (vla-settext tb count 0 (strcat "= A2*" (itoa count))))
  35. (setq count (1+ count)))
  36. (vla-put-RegenerateTableSuppressed tb :vlax-false)
  37. (princ)
  38. );_ end
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:23:42 | 显示全部楼层
我对VL非常陌生,但是:
 
  1. (vla-put-ScaleFactor tb (getvar "dimscale"))
回复

使用道具 举报

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:27:51 | 显示全部楼层
这就是它所提出的,实际上我感觉好了一点,因为即使它不起作用,也有一些不同的看法。我还没有看到这个错误。哈,但它在这里。
 
拾取插入点:有多少存根?14
第一个存根维度是什么15.6295
; 错误:ActiveX服务器返回错误:未知名称:ScaleFactor
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:29:59 | 显示全部楼层
我想这只是意味着它不是受支持的属性之一。。。(认为这是正确的-当你需要他时,阿斯米在哪里)
 
好的,我刚刚试着在一个插件上执行此操作:
 
  1. (defun c:dump (/ ent obj)
  2. (while (setq ent (entsel "\nSelect entity to get object data: "))
  3.    (print)
  4.    (setq obj (vlax-ename->vla-object (car ent)))
  5.    (vlax-dump-object obj t)
  6.    (vlax-release-object obj)
  7.    (princ "\n")
  8. )
  9. (princ)
  10. )

 
它列出了这些属性:
 
  1. ; IAcadBlockReference: AutoCAD Block Reference Interface
  2. ; Property values:
  3. ;   Application (RO) = #<VLA-OBJECT IAcadApplication 00b5e51c>
  4. ;   Document (RO) = #<VLA-OBJECT IAcadDocument 01f1b850>
  5. ;   Handle (RO) = "2DCC"
  6. ;   HasAttributes (RO) = 0
  7. ;   HasExtensionDictionary (RO) = 0
  8. ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 04aaca64>
  9. ;   InsertionPoint = (434.228 282.275 0.0)
  10. ;   Layer = "0"
  11. ;   Linetype = "BYLAYER"
  12. ;   LinetypeScale = 1.0
  13. ;   Lineweight = -1
  14. ;   Name = "TEST BLOCK"
  15. ;   Normal = (0.0 0.0 1.0)
  16. ;   ObjectID (RO) = 2130145312
  17. ;   ObjectName (RO) = "AcDbBlockReference"
  18. ;   OwnerID (RO) = 2130001088
  19. ;   PlotStyleName = "ByLayer"
  20. ;   Rotation = 0.0
  21. ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 04aac360>
  22. ;   Visible = -1
  23. ;   XScaleFactor = 1.0
  24. ;   YScaleFactor = 1.0
  25. ;   ZScaleFactor = 1.0
  26. ; Methods supported:
  27. ;   ArrayPolar (3)
  28. ;   ArrayRectangular (6)
  29. ;   Copy ()
  30. ;   Delete ()
  31. ;   Explode ()
  32. ;   GetAttributes ()
  33. ;   GetBoundingBox (2)
  34. ;   GetConstantAttributes ()
  35. ;   GetExtensionDictionary ()
  36. ;   GetXData (3)
  37. ;   Highlight (1)
  38. ;   IntersectWith (2)
  39. ;   Mirror (2)
  40. ;   Mirror3D (3)
  41. ;   Move (2)
  42. ;   Rotate (2)
  43. ;   Rotate3D (3)
  44. ;   ScaleEntity (2)
  45. ;   SetXData (2)
  46. ;   TransformBy (1)
  47. ;   Update ()

 
这会让我产生这样的想法:
 
  1. (setq dimsc (getvar "dimscale"))
  2. (vla-put-XScaleFactor tb dimsc)
  3. (vla-put-YScaleFactor tb dimsc)
  4. (vla-put-ZScaleFactor tb dimsc)

 
但我不知道
回复

使用道具 举报

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:33:46 | 显示全部楼层
嗯,我仍然没有工作,它说错误错误参数类型vla object nil,所以我不确定我想我将不得不考虑使用4个以上的括号,我试图避免。在盒子里思考更容易!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:36:27 | 显示全部楼层
在提供我的建议时,我实际上并没有查看您发布的LISP,只是使用了我在VL领域所知的一点。
 
但现在我知道了,我看到你使用了命令vla addtable,这似乎在我的ACAD中没有被识别-你如何让这个函数工作?
回复

使用道具 举报

24

主题

111

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 15:39:39 | 显示全部楼层
你想在命令行中使用它吗?我知道acad 2009中有新命令,我知道表是一个vla对象,我所做的几乎都是操纵它。vla addtable只执行表的插入。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:42:55 | 显示全部楼层
好的,这可能是问题所在-我的visual lisp编辑器无法识别这些命令-因此我认为它们是2009年的新命令。
 
但是,如果“vla addtable”执行表插入,那么(这可能是一个愚蠢的问题),您是否会将变量“tb”设置为沿(“entlast”)行的某个值,然后将其转换为vla object或其他值虽然我不确定命令vla addtable的返回值是多少可能返回的是VLA对象名。
 
无论如何,值得一试。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 18:07 , Processed in 0.758703 second(s), 83 queries .

© 2020-2025 乐筑天下

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