乐筑天下

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

[编程交流] 如何提取第四属性

[复制链接]

4

主题

20

帖子

16

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 10:47:12 | 显示全部楼层
这很好用!用一种完全不同的语言。所以现在,当我要获取附加了属性值的变量并在浏览器窗口中打开它时,我又完全迷失了,因为没有变量,只有一个文本字符串。(并不是说这很糟糕,我只是在技能方面还没有做到)
到目前为止,我们班只教了我一门语言。但是,现在我有起草工作要做,不得不从有趣但令人沮丧的Lisp工作中休息一下。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:51:20 | 显示全部楼层
*假设*属性值正确,那么打开该地址的浏览器就太容易了眨眼:
 
给我一分钟。。。。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:53:26 | 显示全部楼层
修改了打开internet浏览器的代码:
 
  1. (defun c:FOO  (/ eName blockObj tagString)
  2. (vl-load-com)
  3. (if (and (setq eName
  4.                  (car (entsel "\n  >>  Select an Attributed Block: ")))
  5.           (= "INSERT" (cdr (assoc 0 (entget eName))))
  6.           (setq blockObj (vlax-ename->vla-object eName))
  7.           (vlax-method-applicable-p blockObj 'getattributes))
  8.    (foreach x  (vlax-invoke blockObj 'getattributes)
  9.      (if (= "WEBSITE" (setq tagString (vla-get-tagstring x)))
  10.        [color=red](command "._browser" (vla-get-textstring x))[/color])))
  11. (princ))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:56:32 | 显示全部楼层
我有一点时间,所以希望你能从这段喃喃自语中找到值得一读的东西:
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] [color=black]c:test[/color] [b][color=RED]([/color][/b] [b][color=BLUE]/[/color][/b] entity [b][color=RED])[/color][/b]
  2. [i][color=#990099];; Define function, localise variable 'entity' used.[/color][/i]
  3. [i][color=#990099];; You can try to think of a better function syntax :-)[/color][/i]
  4. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [i][color=#990099];; IF the following expression returns True[/color][/i]
  5.      [i][color=#990099];; (any non-nil value in fact, string, number you name it - just not 'nil')[/color][/i]
  6.      [i][color=#990099];; we will proceed to the 'then' expression...[/color][/i]
  7.    [i][color=#990099];; IF 'Test' Expression Starts Here {[/color][/i]
  8.    
  9.    [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [i][color=#990099];; All of the expressions enclosed must return True[/color][/i]
  10.         [i][color=#990099];; for the AND function to return True. AND will stop[/color][/i]
  11.         [i][color=#990099];; evaluating expressions as soon as an expression returns[/color][/i]
  12.         [i][color=#990099];; False.[/color][/i]
  13.      
  14.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] entity [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entsel[/color][/b] [b][color=#a52a2a]"\nSelect Attributed Block: "[/color][/b][b][color=RED])))[/color][/b]
  15.      [i][color=#990099];; Prompt user for selection.[/color][/i]
  16.      [i][color=#990099];; If user misses, entsel returns nil, hence (car (entsel)) also returns nil.[/color][/i]
  17.      [i][color=#990099];; [Try it! (car nil) = nil][/color][/i]
  18.      [i][color=#990099];; Else, if user picks object, entsel returns list of entity and picked point[/color][/i]
  19.      [i][color=#990099];; [Try it! type (entsel) at the command line, pick an object and...[/color][/i]
  20.      [i][color=#990099];; (<Entity> (x y z)), so (car (entsel)) returns <Entity> [bingo!][/color][/i]
  21.      
  22.      [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#a52a2a]"INSERT"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] entity[b][color=RED]))))[/color][/b]
  23.      [i][color=#990099];; Check that our user has picked a block and not some other unwanted[/color][/i]
  24.      [i][color=#990099];; object like a pesky line.[/color][/i]
  25.      
  26.      [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]66[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] entity[b][color=RED]))))[/color][/b]
  27.      [i][color=#990099];; Check that the block is attributed, the 66 code means that ATTRIB[/color][/i]
  28.      [i][color=#990099];; entities follow the block entity terminated by a SEQEND entity.[/color][/i]
  29.      [i][color=#990099];; It is these ATTRIBute entities that we will query.[/color][/i]
  30.      [i][color=#990099];; Source: http://autodesk.com/techpubs/autocad/acad2000/dxf/insert_dxf_06.htm[/color][/i]
  31.      
  32.    [b][color=RED])[/color][/b] [i][color=#990099];; End AND[/color][/i]
  33.    [i][color=#990099];; } IF 'Test' Expression Ends Here[/color][/i]
  34.    [i][color=#990099];; All of our conditions have returned True, so lets rock and roll...[/color][/i]
  35.    [i][color=#990099];; IF 'Then' Expression Starts Here {[/color][/i]
  36.    
  37.    [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [i][color=#990099];; While the following expression returns a non-nil value:[/color][/i]
  38.      
  39.      [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#a52a2a]"ATTRIB"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] entity [b][color=RED]([/color][/b][b][color=BLUE]entnext[/color][/b] entity[b][color=RED]))))))[/color][/b]
  40.      [i][color=#990099];; We now look at the entity following the INSERT entity by using the[/color][/i]
  41.      [i][color=#990099];; ENTNEXT function (pretty self-explanatory, 'next entity' so we use 'ent next'[/color][/i]
  42.      [i][color=#990099];; We've checked that the INSERT entity has ATTRIBute entities following it[/color][/i]
  43.      [i][color=#990099];; (DXF code 66=1) hence we know that the loop will run through at least once.[/color][/i]
  44.      [i][color=#990099];; So: WHILE we are dealing with an ATTRIB entity and not a SEQEND Entity...[/color][/i]
  45.      
  46.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"\nAttribute: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]2[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] entity[b][color=RED])))))[/color][/b]
  47.      [i][color=#990099];; Print the Attribute TAG string to the screen for all to see[/color][/i]
  48.      [i][color=#990099];; (DXF code 2 of the ATTRIB entity)[/color][/i]
  49.      [i][color=#990099];; Source: http://autodesk.com/techpubs/autocad/acad2000/dxf/attrib_dxf_06.htm[/color][/i]
  50.      
  51.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"  Value: "[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] entity[b][color=RED])))))[/color][/b]
  52.      [i][color=#990099];; Print the Attribute VALUE string to the screen for all to see[/color][/i]
  53.      [i][color=#990099];; (DXF code 1 of the ATTRIB entity)[/color][/i]
  54.      [i][color=#990099];; Source: You can't have missed it if you studied the previous comment ;-)[/color][/i]
  55.      
  56.    [b][color=RED])[/color][/b] [i][color=#990099];; End WHILE[/color][/i]
  57.    [i][color=#990099];; Doh! No 'Else' expression to evaluate...[/color][/i]
  58.    
  59. [b][color=RED])[/color][/b] [i][color=#990099];; End IF[/color][/i]
  60. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b]
  61. [i][color=#990099];; Lets keep the return of the last function a secret and exit quietly[/color][/i]
  62. [b][color=RED])[/color][/b] [i][color=#990099];; End DEFUN[/color][/i]
  63.       
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 11:00:38 | 显示全部楼层
*薰衣草*是一个美丽的颜色对你李。。。这真的为你刚刚分享的知识轰炸增加了一种“软接触”。
 
别开玩笑了,解释得很好的文档(一如既往!):眨眼:
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:02:02 | 显示全部楼层
调用浏览器的另一种方法
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] [color=black]c:FooBar[/color] [b][color=RED]([/color][/b] [b][color=BLUE]/[/color][/b] entity site [color=black]elist [/color][b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b]
  3.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] entity [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entsel[/color][/b] [b][color=#a52a2a]"\nSelect an Attributed Block: "[/color][/b][b][color=RED])))[/color][/b]
  4.        [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#a52a2a]"INSERT"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] entity[b][color=RED]))))[/color][/b]
  5.        [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]66[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] entity[b][color=RED]))))[/color][/b]
  6.        [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  7.          [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b]
  8.            [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b]
  9.              [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#a52a2a]"ATTRIB"[/color][/b]
  10.                [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b]
  11.                  [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]0[/color][/b]
  12.                    [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] [color=black]elist[/color]
  13.                      [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] entity [b][color=RED]([/color][/b][b][color=BLUE]entnext[/color][/b] entity[b][color=RED])))[/color][/b]
  14.                    [b][color=RED])[/color][/b]
  15.                  [b][color=RED])[/color][/b]
  16.                [b][color=RED])[/color][/b]
  17.              [b][color=RED])[/color][/b]
  18.              [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] site[b][color=RED])[/color][/b]
  19.            [b][color=RED])[/color][/b]
  20.            [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#a52a2a]"WEBSITE"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]2[/color][/b] [color=black]elist[/color][b][color=RED])))[/color][/b]
  21.              [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] site [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]1[/color][/b] [color=black]elist[/color][b][color=RED])))[/color][/b]
  22.            [b][color=RED])[/color][/b]
  23.          [b][color=RED])[/color][/b]
  24.          site
  25.        [b][color=RED])[/color][/b]
  26.      [b][color=RED])[/color][/b]
  27.    [b][color=RED]([/color][/b][color=black]LM:NavigateTo[/color] site[b][color=RED])[/color][/b]
  28. [b][color=RED])[/color][/b]
  29. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b]
  30. [b][color=RED])[/color][/b]
  31. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] [color=black]LM:NavigateTo[/color] [b][color=RED]([/color][/b] url [b][color=BLUE]/[/color][/b] ie [b][color=RED])[/color][/b]
  32. [i][color=#990099];; © Lee Mac 2010[/color][/i]
  33. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  34. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ie [b][color=RED]([/color][/b][b][color=BLUE]vlax-create-object[/color][/b] [b][color=#a52a2a]"InternetExplorer.Application"[/color][/b][b][color=RED]))[/color][/b]
  35.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  36.      [b][color=RED]([/color][/b][b][color=BLUE]vlax-put[/color][/b] ie [b][color=DARKRED]'[/color][/b]Visible [b][color=BLUE]:vlax-true[/color][/b][b][color=RED])[/color][/b]
  37.      [b][color=RED]([/color][/b][b][color=BLUE]vlax-invoke[/color][/b] ie [b][color=DARKRED]'[/color][/b]Navigate url[b][color=RED])[/color][/b]
  38.      [b][color=RED]([/color][/b][b][color=BLUE]vlax-release-object[/color][/b] ie[b][color=RED])[/color][/b]
  39.    [b][color=RED])[/color][/b]
  40. [b][color=RED])[/color][/b]
  41. [b][color=RED])[/color][/b]
  42.    
  43.   
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:07:43 | 显示全部楼层
 
呵呵谢谢
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 11:10:06 | 显示全部楼层
 
 
是的,当然。我一直忽略了ActiveX的“完整”功能(超出应用程序范围)。
 
今天是我第一次尝试,但我无法正确调用LaunchBrowserDialog方法。命令行也没有提供有用的反馈。我现在要去上班了,但它困扰着我,我无法让它工作。
回复

使用道具 举报

4

主题

20

帖子

16

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 11:12:56 | 显示全部楼层
哦我的单词
 
伦德曼,你太棒了。
 
李,我会学习所有这些东西,希望能靠我自己做到这一点。
 
当然,你知道我会继续调整,这样里面的东西就是我的了。这是为一个类编写的,当学习过程在我脑海中翻腾时,至少有些代码也需要我自己编写。英雄联盟
 
要学的东西太多,时间太少。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:14:25 | 显示全部楼层
 
欢迎来到阿拉斯加州。
 
就Visual LISP而言,就像Renderman的例子一样——虽然它看起来很直观,因为函数是英文的,而不是DXF语言,但我不会完全忽略Vanilla AutoLISP方法。它们绝对值得知道。有些情况在VL中编码得更好,有些情况在Vanilla中更简洁(以字典操作为例),执行速度更快(以实体创建为例),而VL可以在AutoCAD“盒子”之外努力进入其他支持OLE自动化的应用程序。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 20:44 , Processed in 0.483571 second(s), 70 queries .

© 2020-2025 乐筑天下

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