活动X或VLISP命令
昨天,我继续努力熟悉Active X模型。晚上,你们大多数人都看到我完成了一项任务,即使用标识句柄方法将一些dimtext覆盖插入到对象中。今天,在进一步研究这个问题时,我遇到了Fixo提交的一个示例,它做了基本相同的事情,但没有使用vlax put属性。。。。etc方法。他这样做:
(entmod (subst (cons 1 "<>CM")(assoc 1 elist) elist))
这段代码有比显示的更多的内容,我只是提出了代码中负责dimtext覆盖插入的部分。像AutoCAD中的许多事情一样,有多种方法可以完成某些事情,所以我的问题是entmode方法是否比Active X方法有任何优势。我说的是纯AutoCAD环境。我意识到Active X需要与其他应用程序(如Excel)进行接口,但当严格使用AutoCAD时,一种方法是否真正优于另一种方法。 它取决于正在执行的例程的范围。特别是,如果例程不需要ActiveX属性和方法,那么使用普通AutoLISP函数将节省将实体名称转换为vla对象的开销。
考虑到我的硬件配置,我发现性能差异可以忽略不计,ActiveX更易于阅读。
随着注释性对象的引入。有时entmod不再剪切它。
我同意Renderman关于避免将实体名称转换为vla对象的开销的说法,因此在选择时,最好使用vanilla,尤其是在使用eName时。
但是,根据您想要修改的内容,某些实体的行为会有所不同。如果我知道我将使用ActiveX属性,我会使用这样的东西
(if (ssget '((0 . "ENTITY")))
(progn
(vlax-for itm (setq sel (vla-get-activeselectionset
(vla-get-ActiveDocument (vlax-get-acad-object))))
.......
)
(vla-delete sel)
)
这一切都是关于为工作使用正确的工具。一些任务使用Vanilla更容易完成,其他任务使用Visual更容易(甚至可能只可能)。
作为快速比较,以下表格摘自Doug Broad的AU-2007讲义:
引用我之前的一篇帖子:
有很多原因。
LISP是为列表操作而设计的,并提供了许多函数。这意味着许多任务使用DXF数据列表要简洁得多,而且,您不需要使用变体和安全数组。
DXF结构允许您通过对ent*函数的单个调用来修改实体的任何或所有属性,而无需单独挖掘每个属性。此外,我发现使用Vanilla AutoLISP使程序在所有UCS平面中兼容要容易得多。
Vanilla AutoLISP函数(如entmake)通常比Visual LISP等效函数快得多。
除此之外,丰富的普通方法使您能够在不访问Visual LISP的情况下为系统编写程序。
</blockquote> 很好的帖子,李-这真的是关键-使用正确的工具来完成这项工作。
另外,您能否提供上述AU课程?我真的想保存一份。
干杯
谢谢RenderMan
当然,课程号是CP311-4
欢迎
有趣的是,我很难在AU的在线课程列表(内容全面)和谷歌搜索(令我惊讶)中找到这门课程。所以我改变了我的搜索字符串,实际上在TheSwamp上遇到了一个旧的(-er)线程,你(李)在那里引用了这个AU课程文档。事实上,你提供的链接今天已经死了,但我只需要找到源PDF。。。感谢我最喜欢的网站之一(图片已链接):
... 现在,我有了一个指向课程PDF的实时直接链接,我在这里分享了它(图片链接):
http://www.maarahot.com/images/stories/misc/pdf_icon_128.png 很棒的侦探作品Sherlock Renderman
你这么说真是太好了;我尽我所能。
https://www.cadtutor.net/forum/image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2WCEAAKGBHMQERQUEXMWEXQVFBWARGCXFBFxMEFRCXGBOWGRSDHCYFHXSLHBKBHY8GIYWQLIWSFR8NTAQNSKRLCKKBCQOKDGWOGG8PGI8FHYPKI01KIOSCKQLCSLSKPKI8PKIWWLCOVLS41KSWSLCWSLckQLDQ1KSWSWSLCWSNF/AABEIAHIADAMBIGACEQEQH/XAACAAGIDAAQAAAAAAAAAAAAAABGCEBQECAWJ/xAA/EAACACAQIDBAGMCDCdCAW Jaaaaabagadeqhmqqvegbxnhcygrinkhfcmym0jsgrlb0wksqhec5oiwtlh8p/EABsBAQACAwEBAAAAAAAAAAAAAAACBAEDBQYH/8QAjheaagedagycawaaaaaaaaaaecawqrivefehmxqweyorqicf/aaawdaqaceqmrad8avgiiaiiannxrqilnykofyzeadvjoqnpkm6y+mdyvenrvmklwabyqmutoedjkpc/gqnllwsciczwvr6cyf33fxvit71h6nkbsg8+ysdtjaszzptne4qbljw1mak43lxvxmeduvbumpvtzfk300lvrvlrszeko1jiahimpabew9ditkvqmnqqt42b075sg19v18aca1qurmforf0rfbrlfnzi9g8 8y9cqtsmd10a6nkr+nA9xmetr2Mfj6as+n4mfsxaa4nd0qy6vkatblczjynx5tnm8rciaiiiaigciiaaxpltj5jgq1ugzbu6nvp7k+hN/KfPZPP3MWH13BWCUSNRVBFDNI9WWHXB4SRACF9PJK9SMPPRFQLKMY6S9HVSLDITJJLU9HVGF95FJ+04qbEqD7S/H9PDOZ2NxP7MOLEXUJ1Q7RZ6HUNSTRK62MM2LUAM3JUNJECSQWFKVTQLXM/GAL79LUZFIKOPZGTSvH1H4SNTXGG2DGYP3LI/2YZ5AH8UUQNYIKYAIGCLX1OKL1HSMOBSFHQTPER/pb0Iw+01UVT4ML9X0AZLVWUOIINHQOEEQ WZK9NOI6E7PTXF0J7RB35QZINRO2AP7YP8UP/xkMr9RDD6rHG3J6V/iG/Sa3avVXWwyAtiKTszWVQjAtxOedgBneaalR04uUtEjdGEJPGTV9a+36EOXLJQDDPP0QN6XHTFMJYIB0TNFgK6rqbeskWzegeIqvZlFJRq5IIPugZk+k346s6Nrdo9+EX9LSVKPOA5OPNGKKKAEGYP4XADK31IJXNPZWXTMJJ1P4HNHTDQVRKPAKRVT9NRJ4CZ3SJHBC6ISDXKOKYJBWNRFNBHMOY9ZHNOCPKXDHYECPF3OFBP8AF9KQ/s61rVcavNaZ9C4/WXHVDNPMZMJBTLWYRNCYRMIAUXJSALK8GNSE4SHW9EVX/Z9JPI0xV1HIWNORAIIJ 4ZB485VXQ/qm3itXGqAuoo5Xb/ABDwH8I8+UtSmgUAAAACwAFgANABN0W33RXkknhPJ2iIkiIiIgCQbpJjO0xZXhSUKPFrMx/KPWYYNEPTU7BFUXLMQABZJMRJSCTAPWQID5xQOVPMXSDN3ATI8AnigoPs5JP+Fq2X7N+iYYRUWgWNr55n7IUXJkJw3Trtq4p01WzH2d6+8wz9o2ygq0kjpwq0wqm3auyvkr8lymno7bxghxgd6bi3a8mgyiageag909lrprxfbaejkv6julzpc119l84pawzclwztyjl/1ibowaojlcmzb5f9zdr8crmbazz9ecfvp0waqgbe1g30rkppnxbn+pkbvajn2abymjkdoshvbzbi85zujvadtsc5vrnfbszctzctzc JTK1jyrhnoiqajfttqcsm6twfzxtkjmdyzkivppzxdsxxyvwjomckg2+rtdbqxxypk3zn3tdo8p4i1xbwphmmpjtov0apuaihz0lc542tci2paoz5+cp31Sjb27rKWdvZao1as58rjggKdEql/ngfmclf29tkpswd1f7jou6o8lmdqrsjvdm7wowz0bujiwe1Gmqxmf0h2rtwpwom4frmdqpobdanuemk4ncb+rcxlu3ph6fm4jimtsiietoaiiiambtvb0jvqmwggh0npbvhezgiwmjoxsqwj5brcn0eqf1srtb+1zaotsmi0kpckezcebx1pkoew2zyrzpb0vry57ud2md7nih2v7z95u8+vpsoi2vrej9zpcbsigk4lfdyfw/lYA i/COjeLNKo1Nst7S/MTj8Wourbtrw8lyhJKWCysJi1K8mHHgw5Hkf6z3p7XGgbyvI/sxyuxjahmwnps6uueqbrmxulaqt1ukgzb2lxpb+KUuFcTrOSoVFlY+X8332Fe3j8kb7tS/hPVTYTBO41WF1YMOYN56DVPOCU4LXVNYYXLFEPFVCTUAAXBUETWMPZKGNVGCW8BVKQNYWN7ABUT+AAItzvyE4xGPC5atwUan/ANzMwnqm+82vAcFHId/MZNU4TPY3IVWNS7X7TJBNV4O/KSQBFBwinicopo8LW0MCEUSDAJB8PH6MIZMA1NYTOPOEQ4HBVQOP4S+2VBix64LV6BDYBTDFH29EQN7FJX5NYPHX1SSFPED2TRZW3PDHQOMTlon0VM2GRS2 TVbBozag1VHA3F99FIM+C9CMC6S8OMUREKQERAXSFS2LXXDQ01QLYZQBEF9PKV70S6QC3ZMDF2LZFN2+COc/Jr+ILLXMNJ6YM0VJ0O2ADTAPIKFZ6UUUU3X6RDC6A6E3VFW4TFTVI0/OLTTEL2EMA2LAKH/FTO4f9JT+Wa6rs8MSQ9Vbn7NRreQNwPKfM+JRlRu5wy0l2xt4OxSxKCZ57Zpr2ZqBAtVSLMigF7sBuMB9K9/Waus53iGNRSDYoSVt4i1/JMNHTTW1WIATVVPMBVHJ7J3TBB6G3OAZB236NSQGWOPAQKTFXMNXYVJWU54UK28D8FTJ6LSE4QHRYC36+Mxq+L75J4RKUINQFWVPNVIUZRJQ0ZYGRgXRG RR2NMND/G+RPGLEM6VTWUREWSLDMMDAMCE4BZGI2RU3KC/MqfaqNknrxPcM5ZewernDYdV7Qdu4++Pm192np5tc98k+GwqUlCIoRVFgqgADwAnrPYW9vChBQic2dRzeWdUphRYAADQDICc7s5iWDwiiaiigciarrpbrkvsrwjrq6oqcdwpukmqof1stwvi7uohcljvgetq7aega0ser7fqfd4uslz94oga9k2balhmc7nxunbvudruq3wu3f+S3SuenHlxkwui+x0Z3qCmDSNMKCy/WsTcsN7MgDLe43NpI02RQBuKNIHupr+0yadmkabob0nadw2t429ju0843nfsbnlmoattjzeaxerareareqberaereqberaereqberaereqberaerea//Z 关于命令是唯一受系统变量影响的东西,我同意这一点,但人们应该知道,在创建对象时,所有(命令、entmake(x)、vla add*)都受系统变量的影响,例如CECOLOR和CELTYPE。
页:
[1]