Gaudi 发表于 2024-4-27 10:52:25

本帖最后由 Gaudi 于 2024-4-28 21:33 编辑

大佬们,我这Lisp才会做第一个程序呢,就开始C#,是不是有点为时过早……


再说也比不过科班出身的啊

纯粹用来给自己画图减少点工作量。


第三篇第一部分经验总结


1 列表

列表格式是最常用的格式,它千变万化,能包含其他所有格式。

对于列表的操作也必须要掌握。

但是也不用畏难,万变不离其宗,掌握怎么定义列表,以及怎么取值,基本上就可以了。

除了前文中已经描述的car系列、assoc、nth、foreach函数,还有一个 cons 函数,这个就是用来创建点对数据的。
或者用来给已有列表新增数据。



2 DXF码表

图层线宽的DXF码是370,这个点卡了我几个小时。
370的数据格式是mm×100,这个点又卡了我几个小时。

最后在国外一个论坛里的13年前的回复找到答案了。
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABkAAAAD0CAIAAABM5X2pAAAgAElEQVR4AeydCXdUR5Lv51tMnboj9WPUjdU1856xpm1w66H2tJo2Rm5obLaD7YbGLAbjDTcYsS9mMTQGDBgLjM0iSyAhCyEWWYAoCak2UYtQfYL3ReYhgv53OCPvrVul0kr4cHxSt/JmRv4yMjIybt68/xIIOvn++6+5n/6P+3/5luYn/69Cvzb+lf16askv/nXk/v3fmS923bmRzSTafmz0rqX+wtlsJtF158b/nflisXJ6l6O/KgEloASUgBJQAkpACSgBJaAElIASUAJKYJQJ+Ang5Jtn1pw/+fz3L/kWHQg6GsDiKrLhk7WZh5GBVOyLA7v49ZJf/OuSJfOPfnngP//P01ib/5xGOfqnElACSkAJKAEloASUgBJQAkpACSgBJaAExpZAARGknLf4jF7NmvMnDWDZt3H534H1H//5y6tNl7KZxEAyeu7Myd9W/lfJL/51avkvtm39W/RBVzaTOHfmJGmY/5xjq5FauxJQAkpACSgBJaAElIASUAJKQAkoASWgBAwCOaNRBWTQAJY9LGWg9/gTAaxsJuH2b/euWirht5X/da2lcTAdlzmvX7tCIa18c3rIpj8pASWgBJSAElACSkAJKAEloASUgBJQAkpglAkUEJ/KeYsGsEY1gEVbrjZ/9vH9u7cGklHajXX/7q1dOzdPLf+FoU9Ty3/hM6dxo/6pBJSAElACSkAJKAEloASUgBJQAkpACSiBsSKQMxpVQAYNYA03gDVW2qD1KgEloASUgBJQAkpACSgBJaAElIASUAJKYBwSKCA+lfMWDWBpAEsJKAEloASUgBJQAkpACSgBJaAElIASUAJKoGgEckajCsigAayidc84DHmqSEpACSgBJaAElIASUAJKQAkoASWgBJSAEhhlAgXEp3LeogEsDWApASWgBJSAElACSkAJKAEloASUgBJQAkpACRSNQM5oVAEZNIBVtO4Z5XCmVqcElIASUAJKQAkoASWgBJSAElACSkAJKIFxSKCA+FTOWzSApQEsJaAElIASUAJKQAkoASWgBJSAElACSkAJKIGiEcgZjSoggwawitY94zDkqSIpASWgBJSAElACSkAJKAEloASUgBJQAkpglAkUEJ/KeYsGsDSApQSUgBJQAkpACSgBJaAElIASUAJKQAkoASVQNAI5o1EFZNAAVtG6Z5TDmVqdElACSkAJKAEloASUgBJQAkpACSgBJaAExiGBAuJTOW/RAJYGsJSAElACSkAJKAEloASUgBJQAkpACSgBJaAEikYgZzSqgAwawCpa94zDkKeKpASUgBJQAkpACSgBJaAElIASUAJKQAkogVEmUEB8KuctGsDSAJYSUAJKQAkoASWgBJSAElACSkAJKAEloASUQNEI5IxGFZBBA1hF655RDmdqdUpACSgBJaAElIASUAJKQAkoASWgBJSAEhiHBAqIT+W8RQNYGsBSAkpACSgBJaAElIASUAJKQAkoASWgBJSAEigagZzRqAIyaACraN0zDkOeKpISUAJKQAkoASWgBJSAElACSkAJKAEloARGmUAB8amct2gASwNYSkAJKAEloASUgBJQAkpACSgBJaAElIASUAJFI5AzGlVABg1gFa17RjmcqdUpASWgBJSAElACSkAJKAEloASUgBJQAkpgHBIoID6V8xYNYGkASwkoASWgBJSAElACSkAJKAEloASUgBJQAkqgaARyRqMKyKABrKJ1zzgMeapISkAJKAEloASUgBJQAkpACSgBJaAElIASGGUCBcSnct6iASwNYCkBJaAElIASUAJKQAkoASWgBJSAElACSkAJFI1AzmhUARk0gFW07hnlcKZWpwSUgBJQAkpACSgBJaAElIASUAJKQAkogXFIoID4VM5bNIClASwloASUgBJQAkpACSgBJaAElIASUAJKQAkogaIRyBmNKiCDBrCK1j3jMOSpIikBJaAElIASUAJKQAkoASWgBJSAElACSmCUCRQQn8p5iwawNIClBJSAElACSkAJKAEloASUgBJQAkpACSgBJVA0AjmjUQVk0ABW0bpnlMOZWp0SUAJKQAkoASWgBJSAElACSkAJKAEloATGIYEC4lM5b9EAlgawlIASUAJKQAkoASWgBJSAElACSkAJKAEloASKRiBnNKqADBrAKlr3jMOQp4qkBJSAElACSkAJKAEloASUgBJQAkpACSiBUSZQQHwq5y0awNIAlhJQAkpACSgBJaAElIASUAJKQAkoASWgBJRA0QjkjEYVkEEDWEXrnlEOZ2p1SkAJKAEloASUgBJQAkpACSgBJaAElIASGIcECohP5bxFA1gawFICSkAJKAEloASUgBJQAkpACSgBJaAElIASKBqBnNGoAjJoAKto3TMOQ54qkhJQAkpACSgBJaAElIASUAJKQAkoASWgBEaZQAHxqZy3aABLA1hKQAkoASWgBJSAElACSkAJKAEloASUgBJQAkUjkDMaVUAGDWAVrXtGOZyp1SkBJaAElIASUAJKQAkoASWgBJSAElACSmAcEiggPpXzFg1gaQBLCSgBJaAElIASUAJKQAkoASWgBJSAElACSqBoBHJGowrIoAGsonXPOAx5qkhKQAkoASWgBJSAElACSkAJKAEloASUgBIYZQIFxKdy3jLZAli//HX5r0K/5v9++eupo9xPWp0SUAJKQAkoASWgBJSAElACSkAJKAEloASeWQI5o1EFZJhsAax//9VUHr36VejXv/z1c8+sxmjDlYASUAJKQAkoASWgBJSAElACSkAJKAElMJoE/q0kUEB8Kuctky2AVfK/pmgAazT1UutSAkpACSgBJaAElIASUAJKQAkoASWgBJQACAT/LZgzGlVAhskWwAoEnX9/7mebsH4Z0h1Yes6XElACSkAJKAEloASUgBJQAkpACSgBJaAERpzAv5WOyParQNCZhAGsYEkpPwlLA1gIgmpCCSgBJaAElIASUAJKQAkoASWgBJSAElACI0cg4IzI9qvJGcAKBJ1gSSn2Yf0yVD5yHaMlKwEloASUgBJQAkpACSgBJaAElIASUAJKQAkM7b0asejVpA1g0buUJf9ryr//aqoGsHQUKQEloASUgBJQAkpACSgBJaAElIASUAJKYIQI/FtJYITOveJHZU3CVwh58zStBJSAElACSkAJKAEloASUgBJQAkpACSgBJTDRCWgAy5noXajyKwEloASUgBJQAkpACSgBJaAElIASUAJKYHIT0ACWBrCUgBJQAkpACSgBJaAElIASUAJKQAkoASWgBMY1AQ1gjevumdzRU22dElACSkAJKAEloASUgBJQAkpACSgBJaAE/BDQAJYGsJSAElACSkAJKAEloASUgBJQAkpACSgBJaAExjUBDWCN6+7xE4PUPEpACSgBJaAElIASUAJKQAkoASWgBJSAEpjcBDSApQEsJaAElIASUAJKQAkoASWgBJSAElACSkAJKIFxTUADWOO6eyZ39FRbpwSUgBJQAkpACSgBJaAElIASUAJKQAkoAT8ENIClASwloASUgBJQAkpACSgBJaAElIASUAJK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KAEloASUgBJQAuOagAawxnX3FCVIqYUoASWgBJSAElACSkAJKAEloASUgBJQAkpgQhPQAJYGsJSAElACSkAJKAEloASUgBJQAkpACSgBJaAExjUBDWCN6+6Z0MFRFV4JKAEloASUgBJQAkpACSgBJaAElIASUAJFIaABLA1gKQEloASUgBJQAkpACSgBJaAElIASUAJKQAmMawIawBrX3VOUIKUWogSUgBJQAkpACSgBJaAElIASUAJKQAkogQlNQANYGsBSAkpACSgBJaAElIASUAJKQAkoASWgBJSAEhjXBDSANa67Z0IHR1V4JaAElIASUAJKQAkoASWgBJSAElACSkAJFIWABrA0gKUElIASUAJKQAkoASWgBJSAElACSkAJKAElMK4JaABrXHdPUYKUWogSUAJKQAkoASWgBJSAElACSkAJKAEloAQmNAENYGkASwkoASWgBJSAElACSkAJKAEloASUgBJQAkpgXBPQANa47p4JHRxV4ZWAElACSkAJKAEloASUgBJQAkpACSgBJVAUAhrA0gCWElACSkAJKAEloASUgBJQAkpACSgBJaAElMC4JqABrHHdPUUJUmohSkAJKAEloASUgBJQAkpACSgBJaAElIASmNAENIA1jgJYZ745mc0k7nXemPHyjAmtVST8zh1bs5lELBKueb1mQjSn5vWaWCSczSR27tg6IQRWIQsmUPBYm3BaXTAivXGYBK61XM5mEtdaLg+znEl/+7gFNeaCrVu3Jt3fl+7vW7duzeRWA5+ofWab3KzcWjdptGWUPbFRUyo/FU2aTnTTUr2uBJSAEigKgUkYwCoPhU6fPN5Yf37evLlFYTRqhRS8qB41CfOqaMIt9UfZbcoLpp/MlZWVdadPxPvuD6bj2UwiGX/Q0tQwf/6f+b3kHmUzCe9/Rghv/vw/tzQ1pBJ92UziUSrWG75z4viRaRUVvOSJlS54rE04rfbTL5s/+1tLU8Pmz/7mJ7Pm8UnAz3LFZ1GTO9u4BTXmgo3OanZmVdX5c2fOnzszs6pqrDTNJ2qZbeXKFU2X6w8d3OeUlI6V8MWqd5i+6+hoS7Ea61FOXp7YMKEFgs6oKZWsSEIYk0584435TY2XOm9f93h2vnz5so6b1zLJaDaTGEhGu+917N2za0pZmWzClLKy/ft294bvPErFsplEKtHXfq15+fJlRk5r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IECAQKEFBFiFbp5JRJI+QoAAAQIECBAgQIAAAQIECBCYZQICLAEWAQIECBAgQIAAAQIECBAgQIBAoQUEWIVunlkWl6oOAQIECBAgQIAAAQIECBAgQGASAgIsARYBAgQIECBAgAABAgQIECBAgEChBQRYhW6eSUSSPkKAAAECBAgQIECAAAECBAgQmGUCAiwBFgECBAgQIECAAAECBAgQIECAQKEFBFiFbp5ZFpeqDgECBAgQIECAAAECBAgQIEBgEgICLAEWAQIECBAgQIAAAQIECBAgQIBAoQUEWIVunklEkj5CgAABAgQIECBAgAABAgQIEJhlAgIsARYBAgQIECBAgAABAgQIECBAgEChBWZngHXoo/fHatVTnx294cYbYuL4p9d3jNWqo0OVp9Y9EWemJsIHD330fqmtfMONN5z67OhYrdrMf396fUdYVdhKg4+MnO9bvfrBBusfHar09pzY9er2JUuWpIo30SqEjzdTkWC1aeP6BiVP/tNAf0/XbV2ltnLXbV0D/T1jteqmjetjacN64jJJmVSjxI+YIECAAAECBAgQIECAAAECBAjUE2i5AGusVu053b1s2bJckSIEWDEnGujveXDVymQ5YzrWZBXCZwVYSUPTBAgQIECAAAECBAgQIECAwIwTaMUAa6xWfWPXznL73GxrJQOs7L/G0UZxvFV2mZAxNTPOKOZKqbXdtHTpthefHznfN1ar9p07uWLF8riVGGBNqAr1NhRX22AibDE1liq5fDQxAivJYpoAAQIECBAgQIAAAQIECBC4jAItGmANV3sf/vVDWcciBFihVGvXPFK70D9Wq7780n/HciYDrOarIMCKgCYIECBAgAABAgQIECBAgACBmSjQcgHW6FAlDG46cexI8glZofGKE2DF1Ck8kCsULwRYE61CXFVqqFcz+6sRWM0oWYYAAQIECBAgQIAAAQIECBCYUoGWC7AG+nte3bFtdKhycWTw5W0vpHCLE2CV2srZwsQ4aUJVEGClWtmfBAgQIECAAAECBAgQIECAwMwSaMUA6447f3zwwL6xWrXaf/buu3+abLBsZpT81/i8pwZDmULG9HWegRW2GFOnjz/cF8sQA6wJVSGuqkGx4yZSE3GL4Z2DqX/1FsIsiDkECBAgQIAAAQIECBAgQIDAZRdoxQCr67auu+/+abX/7FitevDAvgWdnZG1OAHWlmefCcPEfr91SyxeMk5qvgoCrAhoggABAgQIECBAgAABAgQIEJiJAi0aYJXayi9ve+HiyODoUGXLs8/ElrtcAdZYrZr7X/J1fvVypZuWLt3xyou1ocpYrXqy+8hNS5fG4iUDrOarEDeUW6SxWjX5mK24rTCR2mLqX43AyoKYQ4AAAQIECBAgQIAAAQIECFx2gdYNsBYuWtR99OBYrdp37uSKFcuD7LQEWPVypZ6Tx2LBQvFScVKTVRBgXfbDxgoJECBAgAABAgQIECBAgACBKynQugFWqa38qwdXDVd7x2rV9/+8u9w+N/e56cnGmKJnYGUDrC+GB3bu2NYxf35y66W2cirAarIKMcCaimdg3XrrLQO9Z8Zq1U0b18fSbnh63cWRweRwsy//6fWdr4zVqs08HSyuxwQBAgQIECBAgAABAgQIECBAoNRWbukAq9w+941dO8dq1dqF/rVrHpmuACuZK8Ww6cihA8mHc4WdNRtgNVOFuM7khprc+7NbTH0wrjwZYK1e/eDI+b5UgLVp43oBVkrPnwQIECBAgAABAgQIECBAgEAzAi0dYJXaysuWLes53T1Wq57+7Bfyb8EAAAv7SURBVJObli69XD8hbGacUYx+UrnSls2bRocHRocqT617ItWEuXHSJatQb0Oplef+mbvF5JJh5RdHBjc8vS7O/yrA6j1z6623xJkhwDrZfeRfv/OdONMEAQIECBAgQIAAAQIECBAgQOCSAq0eYJXaymvXPFK70D9Wq76xa+fhj/c3eKj5FP2EMBVgxbyp++jBhYsWJZuwXpzUuApxhakNJddcb7reFuPy31z4rV2vbd+/d8+dd90RZ9551x379+7Z9dr2by78Vpz54KqVH32w96UX/hDnmCBAgAABAgQIECBAgAABAgQINCMgwCqX2+e+/+fdY7XqcLV3sG/8cU713sp3ZQKsUlu53iCsenFS4ypMaYDVzE5mGQIECBAgQIAAAQIECBAgQIDA1xEQYJVLbeUVK5b3nTsZH6Y+7QFWjJyOHzucHIRVL8BqXIW4tqkYgfV1dj6fJUCAAAECBAgQIECAAAECBAg0IyDAGg+wxgc9PfvM6FAlZFjTHmD9fRDW8MCWzZtiQzYIsBpUYUoDrAWdndtefH7/3j0/u/eeWM6urq53dr/5xq6d1y9eHGf+7N579u/ds+3F57MPp4/LmCBAgAABAgQIECBAgAABAgQIZAUEWF8FWAs6Ow8e2He5Aqw4mCs7MXK+b/XqB0tt5ca50sJFi44fO5x6bV/jAKteFeKGsoWJc+o9db7xFktt5VUrHxiu9o3Vqh9/uC/uXq/vfGWsVk092f3jD8d5h6t9q1Y+EJc0QYAAAQIECBAgQIAAAQIECBC4pIAA66sAq9RWvvvun1b7z16WZ2DFYCg70WSAVWorr3/qydHhgYsjg7/fuiU05CXjpNwqTGmAdcONN3R/erg2VEmOFFu18oELA+d6e07cceeP4y64aeP62lDl+LHDNy1dGmeaIECAAAECBAgQIECAAAECBAhcUmB2BliXrLYFCBAgQIAAAQIECBAgQIAAAQIEZoqAAOvvI7BmSpspJwECBAgQIECAAAECBAgQIECgpQQEWAIsAgQIECBAgAABAgQIECBAgACBQgsIsArdPC0VpqosAQIECBAgQIAAAQIECBAgQCBXQIAlwCJAgAABAgQIECBAgAABAgQIECi0gACr0M2TGzqaSYAAAQIECBAgQIAAAQIECBBoKQEBlgCLAAECBAgQIECAAAECBAgQIECg0AICrEI3T0uFqSpLgAABAgQIECBAgAABAgQIEMgVEGAJsAgQIECAAAECBAgQIECAAAECBAotIMAqdPPkho5mEiBAgAABAgQIECBAgAABAgRaSkCAJcAiQIAAAQIECBAgQIAAAQIECBAotIAAq9DN01JhqsoSIECAAAECBAgQIECAAAECBHIFBFgCLAIECBAgQIAAAQIECBAgQIAAgUILCLAK3Ty5oaOZBAgQIECAAAECBAgQIECAAIGWEhBgCbAIECBAgAABAgQIECBAgAABAgQKLSDAKnTztFSYqrIECBAgQIAAAQIECBAgQIAAgVwBAZYAiwABAgQIECBAgAABAgQIECBAoNACAqxCN09u6GgmAQIECBAgQIAAAQIECBAgQKClBARYAiwCBAgQIECAAAECBAgQIECAAIFCCwiwCt08LRWmqiwBAgQIECBAgAABAgQIECBAIFdAgCXAIkCAAAECBAgQIECAAAECBAgQKLSAAKvQzZMbOppJgAABAgQIECBAgAABAgQIEGgpAQGWAIsAAQIECBAgQIAAAQIECBAgQKDQAgKsQjdPS4WpKkuAAAECBAgQIECAAAECBAgQyBUQYAmwCBAgQIAAAQIECBAgQIAAAQIECi0gwCp08+SGjmYSIECAAAECBAgQIECAAAECBFpKQIAlwCJAgAABAgQIECBAgAABAgQIECi0gACr0M3TUmGqyhIgQIAAAQIECBAgQIAAAQIEcgUEWAIsAgQIECBAgAABAgQIECBAgACBQgsIsArdPLmho5kECBAgQIAAAQIECBAgQIAAgZYSEGAJsAgQIECAAAECBAgQIECAAAECBAotIMAqdPO0VJiqsgQIECBAgAABAgQIECBAgACBXAEBlgCLAAECBAgQIECAAAECBAgQIECg0AICrEI3T27oaCYBAgQIECBAgAABAgQIECBAoKUEBFgCLAIECBAgQIAAAQIECBAgQIAAgUILCLAK3TwtFaaqLAECBAgQIECAAAECBAgQIEAgV0CAJcAiQIAAAQIECBAgQIAAAQIECBAotIAAq9DNkxs6mkmAAAECBAgQIECAAAECBAgQaCkBAZYAiwABAgQIECBAgAABAgQIECBAoNACAqxCN09LhakqS4AAAQIECBAgQIAAAQIECBDIFZjOAKt93hz/ESBAgAABAgQIECBAgAABAgQIELhcAv+UG4A1nvnt5Y/9tf7/LlfJrIcAAQIECBAgQIAAAQIECBAgQIBA+7w5AizjxQgQIECAAAECBAgQIECAAAECBAotIMAqdPMIWQkQIECAAAECBAgQIECAAAECBARYAiwCBAgQIECAAAECBAgQIECAAIFCCwiwCt08ElYCBAgQIECAAAECBAgQIECAAAEBlgCLAAECBAgQIECAAAECBAgQIECg0AICrEI3j4SVAAECBAgQIECAAAECBAgQIEBAgCXAIkCAAAECBAgQIECAAAECBAgQKLSAAKvQzSNhJUCAAAECBAgQIECAAAECBAgQEGAJsAgQIECAAAECBAgQIECAAAECBAotIMAqdPNIWAkQIECAAAECBAgQIECAAAECBARYAiwCBAgQIECAAAECBAgQIECAAIFCCwiwCt08ElYCBAgQIECAAAECBAgQIECAAAEBlgCLAAECBAgQIECAAAECBAgQIECg0AICrEI3j4SVAAECBAgQIECAAAECBAgQIEBAgCXAIkCAAAECBAgQIECAAAECBAgQKLSAAKvQzSNhJUCAAAECBAgQIECAAAECBAgQEGAJsAgQIECAAAECBAgQIECAAAECBAotIMAqdPNIWAkQIECAAAECBAgQIECAAAECBARYAiwCBAgQIECAAAECBAgQIECAAIFCCwiwCt08ElYCBAgQIECAAAECBAgQIECAAAEBlgCLAAECBAgQIECAAAECBAgQIECg0AICrEI3j4SVAAECBAgQIECAAAECBAgQIEBAgCXAIkCAAAECBAgQIECAAAECBAgQKLSAAKvQzSNhJUCAAAECBAgQIECAAIGpEyh/o73UcfWcjmvndFznPwIEpkzg2lLH1eVvtH+dY1mAJcAiQIAAAQIECBAgQIAAgZYTuGpeW6njmjnz/rnU3lG6am6prew/AgSmRKDcXiq3l66aN364dVxz1by2ycVYAqyW66Ynt6P4FAECBAgQIECAAAECBGaNwFXz2uZ0XDseXcmtCBC4YgLl9lJ7x5yOayeXYQmwBFgECBAgQIAAAQIECBAg0FoCpY5rpFfCOwLTI9DeUeq4ZhJpuACrtbrpSewiPkKAAAECBAgQIECAAIHZJFD+Rvv4T5mu2KgTGyJAIClQbi/Nu2YSz8MSYAmwCBAgQIAAAQIECBAgQKCFBEodV5eumifAIkBg2gSumlvquHqisbgAq4W66YnuHJYnQIAAAQIECBAgQIDA7BMYf/pVuX3aLt2TQ1FME2hNgXL7nI5rJ9q3CLAEWAQIECBAgAABAgQIECDQQgJzOq6TXhEgMJ0C4wHWdQKsFup2J9rYlidAgAABAgQIECBAgAABAdZ0JhetOeBIrTMCAizpFQECBAgQIECAAAECBAgQaCQgwBJgEZh2AQFWo07KfQYCBAgQIECAAAECBAgQICDAmvbwQgEICLAEWAQIECBAgAABAgQIECBAoJGAAEt6QmDaBQRYjTop9xkIECBAgAABAgQIECBAgIAAa9rDCwUgIMASYBEgQIAAAQIECBAgQIAAgUYCAizpCYFpFxBgNeqk3GcgQIAAAQIECBAgQIAAAQICrGkPLxSAgABLgEWAAAECBAgQIECAAAECBBoJCLCkJwSmXUCA1aiTcp+BAAECBAgQIECAAAECBAgIsKY9vFAAAgIsARYBAgQIECBAgAABAgQIEGgkIMCSnhCYdoFJBFj/B2us6VSx6nYMAAAAAElFTkSuQmCC

FXCK USELESS CHINESE INTERNET!

这也是我为什么想开这个贴的原因之一。

顺便问下大佬们,哪儿有最齐全的、带数据格式的DXF群码表?



3 asscos 函数

有朋友可能发现了,asscos 函数后面我用了一个 read 函数。
(setq prefixes '("新建" "利用" "拆除" "更换"))
(setq colors '((新建 . 60) (利用 . 4) (拆除 . 3) (更换 . 30)))
(cons 62 (cdr (assoc (read prefix) colors)))
按道理讲应该是不需要的,字符串应该可以直接利用 assoc 读取,只有数字的时候才需要。
但就是报错。
希望有大佬解释下。

kozmosovia 发表于 2024-4-27 13:16:48

DXF编程是CAD早期的编程技术,还是有一定的门槛。更低门槛其实应该直接考虑转VLA,学习、按照对象模型来处理。很多很复杂的结构,尤其是比较新的实体类型,如ARRAY,动态参数之类的,有些甚至根本没有DXF的修改方式,COM模型改更方便。COM里面属性、方法等也都是简单的一目了然的单词。

kozmosovia 发表于 2024-4-27 13:18:14

Gaudi 发表于 2024-4-27 10:52
大佬们,我这Lisp才会做第一个程序呢,就开始C#,是不是有点为时过早……




'((新建 . 60) (利用 . 4) (拆除 . 3) (更换 . 30)))
改写成(list(cons 新建60) (cons 利用4) (cons 拆除3) (cons 更换30)))

20060510412 发表于 2024-4-28 10:17:10

什么事情都要讲性价比,对于有主业的cad二开爱好者来说,lisp绝对是性价比最高的。
如果有精力,学一下c#也挺好,很多算法的实现、还有jig动态之类的,都是lisp做不到的。

crtrccrt 发表于 2024-4-28 15:34:44

本帖最后由 crtrccrt 于 2024-4-28 15:37 编辑

不喜勿喷,不喜勿喷,不喜勿喷

AUTOLSP灵魂在于SET和EVAL
AUTOLSP精华在于APPLY和MAPCAR及FOREACH
VISUAL-LSP莫名其妙的Automation 错误,让人抓狂.
使用LSP,尽量不用command / command-s / vL-cmd

不喜勿喷,不喜勿喷,不喜勿喷

Gaudi 发表于 2024-4-28 20:52:14

本帖最后由 Gaudi 于 2024-4-29 13:01 编辑

为了不打扰大佬们看帖的流畅性,再不能点评之前,我就先不回复各位大佬的回帖了,见谅见谅。


第三篇第二部分获取指定文件夹地址


来到了第二个子函数。

1 确定指定文件夹

这里要用到大量的VLA函数,依次有:
(setq sh (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application"))
vla-getInterfaceObject:这是一个VLA函数,用于获取AutoCAD中当前活动的文档对象(ActiveX文档对象)的指定接口。它接受两个参数:当前的AutoCAD文档对象和要获取的接口名称。
vlax-get-acad-object:这也是一个VLAX函数,用于获取AutoCAD的顶级对象,即AutoCAD应用程序对象。这个对象是访问AutoCAD其他对象和服务的大门。
Shell.Application:这是Windows Shell的COM(组件对象模型)接口名称,通过这个接口可以访问和控制Windows Shell的功能,例如浏览文件系统、打开文件、执行程序等。
首先获取AutoCAD应用程序对象,然后通过这个对象获取Windows Shell的接口对象,并将其保存在变量sh中。这样,在AutoLisp中就可以使用这个对象来执行与Windows Shell相关的操作。

……看晕了吗?
我反正是晕了。

总归,这句魔法咒语的意思:
我要跟和cad软件开始交易了!

你要问我这句魔法咒语是怎么被我写出来的?
抄得。
下一题。

……为什么要获得这个接口,主要原因还是接下来这句代码。里面的函数需要有这么个参数:
(setq folder (vlax-invoke-method sh 'BrowseForFolder 0 "选择块文件夹" 0))
vlax-invoke-method ,定义-调用-方法。它至少两个参数:要调用的ActiveX对象和方法名。

所以上文要用一系列的VLA函数,来传递CAD这个对象。
BrowseForFolder 是用来选择文件夹的函数,后面几个都是它的参数,比如是否允许选择、标题显示、默认啥的。

最后是(vlax-release-object sh)
这句魔法咒语的意思:
跟CAD软件的交易结束了!

说实话这三句代码,让我看懂没问题,但让我再写出来,或者换个方式,比如不是文件夹而是文件,那又得再磨叽会儿。

所以对于我们这种菜鸟来说,把它保存下来就行了……
会用第一!


2 获取文件夹地址

(setq folderPath (vlax-get-property folder 'Path))
很煎蛋,文件夹都选好了,用 vlax-get-property 把 folder 的 path 属性传递了不就行了嘛。

最后再重申返回下文件夹地址。


3添加默认地址

使用的时候发现每次都要选择实在是太烦了,明明文件夹每次都是一样的。
这时候需要增加一个默认地址的功能。

如果使用默认地址,就直接空格过去。

首先你得定义个默认地址吧?直接使用 setq。
然后你得显示下默认地址是啥,不然我怎么对不对。直接使用 princ。
然后就是进行选择,是否使用默认地址?使用就直接返回默认地址,不使用就再进入选择。用 if 语句判定下。
注意这里还不能跟前面获取桩号标注的时候一样,先选择 Y 或者 N,如果是 Y 或者空格,才进入。这里要用到 equal,来判定输入的是什么。

(setq defaultFolderPath "默认地址")
(princ (strcat "\n预设路径: " defaultFolderPath))
(initget 0 "Y N")
(setq userChoice (getkword "&使用预设路径(Y\n)? <Y>\n "))
(if (or (equal userChoice "Y") (equal userChoice nil))
    defaultFolderPath
    (progn
      (XXX)
    )
)
)


Gaudi 发表于 2024-4-28 21:00:01

本帖最后由 Gaudi 于 2024-4-29 13:04 编辑

第三篇第二部分经验总结



1

工作不是考试,不需要你掌握每一条代码的来龙去脉。

有些自己新建比较困难的东西,就把别人写的轮子看懂了,直接使用就行了。

会修改就行。

图纸不都是这么来得,修修补补又三年。

2

VLA函数再一次印证了它又长又软的特点。

只要你知道有这么个函数,可以实现这个功能。

你就不再需要通过各种底层的代码去自己实现——因为定义VLA函数的大佬们已经把这些底层代码封装成一个个接近自然语言的VLA函数了。

所以学习VLA函数,最简单的办法,应该是对着帮助文件一个个看。

跟大佬们混个眼熟。

以后才能想起来——

大佬,上次你说能读取文件夹,这事你看好办不?



3

这里面有个坑,还是我后来才发现的。

从逻辑上看,直接使用 getkword 函数就行了。

没想到 autolisp 中还需要一个initget 函数初始化……

initget 函数后面跟一个参数和一个列表,参数常用的就是 0 和 1,其中 0 代表可以空格返回 nil,1 代表不允许。

全是坑!

guosheyang 发表于 2024-4-28 21:15:12

厉害天天记录!

Gaudi 发表于 2024-4-29 10:11:17

本帖最后由 Gaudi 于 2024-4-29 15:53 编辑

第三篇第三部分读取指定excel表数据


这部分很重要,因为它自身的耦合性很高,可以用到其他任何函数里面。

同时这部分的代码确实理解起来有点难度,所以我先把代码放出来,不太想去理解的朋友,可以直接用。

(defun ReadExcelData ()
(setq defaultPath (getvar "DWGPREFIX"))
(setq selectedExcelFile (getfiled "选择外业数据" defaultPath "xlsx;xls" 0))
(setq application (vlax-get-or-create-object "Excel.Application"))
(setq workbooks (vlax-get-property application "WorkBooks"))
(setq workbook (vlax-invoke-method workbooks "Open" selectedExcelFile))
(setq sheets (vlax-get-property workbook "Sheets"))
(setq worksheet (vlax-get-property sheets "Item" "标志牌"))
(setq range (vlax-get-property worksheet "Range" "A2:E100"))
(setq variantValues (vlax-get-property range 'Value))
(setq listValues (vlax-safearray->list (vlax-variant-value variantValues)))
(vlax-invoke-method workbook "Close")
(vlax-invoke-method application "Quit")
(vlax-release-object application)
listValues
)

整体分为以下板块:

A 定义默认路径
B 选择excel程序,建立联系
C 选择工作簿
D 选择工作表
E 选择单元格
F 读取数据
G 改变格式,传递数据
H 关闭工作表、关闭工作簿
I 断开联系
J 重申数据返还

今天有点忙,先放,有空了再解释。



1 思维理解

对于 cad 和 excel 数据交互来说,每一步都需要两个操作:选择、打开。

程序是很笨的嘛,所有操作都得写清楚高速它。

而对于一份 excel 数据来说,这样的步骤需要重复三次:工作簿、工作表、单元格。

理解完成。


2 工作簿

(setq application (vlax-get-or-create-object "Excel.Application"))
vlax-get-or-create-object,定义 - 获取 - 或者 - 创建 - 对象。
理解起来其实很容易,就是创建或者获取一个 VLA 对象,这里定义具体为 excel。
(setq workbooks (vlax-get-property application "WorkBooks"))
vlax-get-property,定义 - 获取 - 属性。
针对已经创建的 VLA 对象,获得其属性,属性定义具体为 workbooks ,工作簿。
将工作簿对象集合传递下去。

3 工作表
(setq workbook (vlax-invoke-method workbooks "Open" selectedExcelFile))
vlax-invoke-method,熟悉的函数,上次是这么使用的:
(setq folder (vlax-invoke-method sh 'BrowseForFolder 0 "选择块文件夹" 0))
上次是用来选择文件夹。
这次是用来在工作簿对象中,将选择的文件打开,将工作表对象集合传递个下一个参数。

(setq worksheet (vlax-get-property sheets "Item" "标志牌"))
在所有的工作表对象集合中,选择特定的工作表,将工作表作为对象传递个下一个参数。

4 单元格
(setq range (vlax-get-property worksheet "Range" "A2:E100"))
在特定的工作表中,选定特定的范围,将单元格范围传递给下一个参数。
(setq variantValues (vlax-get-property range 'Value))
在特定的单元格中,选择参数 value,将数值传递给下个参数。


5


到这里理论上就结束了。


但是会报错。
因为到目前为止,所谓的“value”仍然是一个VLA对象。
所以需要一个函数,将这个 VLA 对象,转为 cad 可返回的参数。
(setq listValues (vlax-safearray->list (vlax-variant-value variantValues)))
这里有两个函数,一个是vlax-variant-value,定义-变体-数值;一个是vlax-safearray->list,定义-安全数组 转为 列表。

这里面有两个很拗口的概念:变体和安全数组。
先不聊,能理解就理解,半理解就这么
总归这两个函数的意思就是,先将读取的变体数值转为安全数组,再将安全数组转为列表。


Gaudi 发表于 2024-4-29 16:10:57

本帖最后由 Gaudi 于 2024-4-29 16:30 编辑

第三篇第三部分经验总结


1

我们再把整个流程顺一下:
vlax-get-or-create-object "Excel.Application":告诉电脑,今晚把 excel 带来。

vlax-get-property application "WorkBooks":excel,把所有工作簿全都叫上来!
vlax-invoke-method workbooks "Open" selectedExcelFile:就点这个工作簿了,其他下去吧。

vlax-get-property workbook "Sheets":这个工作簿里,所有工作表全都上来!
vlax-get-property sheets "Item" "标志牌":就点这个工作表了,其他下去吧。

vlax-get-property worksheet "Range" "A2:E100":这个工作表里,把这些单元格全都叫上来!——其他下去!
vlax-get-property range 'Value:这些单元格都只穿属性,其他不要了。

(setq listValues (vlax-safearray->list (vlax-variant-value variantValues))):老板,属性都变成你喜欢的列表了,是不是让它们进来?——进来吧。

是不是容易理解了。



2

为什么其他都是用的 vlax-get-property,在工作簿集合中选择工作簿使用的是 vlax-invoke-method 呢?
vlax-get-property,定义-获取-属性。
vlax-invoke-method,定义-调用-方法。

前者是获取一个对象的属性,是静态的。
后者是调用一个对象的方法,是动态的。

open、close、quit,都是动作。


3 变体和安全数组

变体和安全数组是什么?
太掉书袋的东西我们不管,直接说我个人的理解。

变体,变的啥?
变的是数据类型。
不同的VLA对象,都有其特殊的数据。
它可以自动“变“成接收端语言所需的数据类型。

安全数组,安全的啥?
固定数据类型、固定数据个数,类似于PDF。

为什么要引入这两个概念?
首先COM平台程序太多,你得尽可能把所有信息能传递出去,这就需要变体。
但是电脑又太笨了,前文所说,数据类型不一样,有些地方就不认识了,所有又需要一个安全数据,来保证数据的类型和结构在传递过程中不会丢失或损坏。

CAD是lisp语言,它喜欢列表,那最后就转成列表咯。


4

……啰里啰嗦,其实我自己是懒得去理解的。
直接用呗,还能咋地。



这里我有个小问题想请教各位大佬!
这段代码我在其他电脑上不能使用,提示实参过少。
CAD版本一样,EXCEL版本一样,文件地址一样,文件内容一样。
有win7也有win10。
我自己调试发现是(setq workbook (vlax-invoke-method workbooks "Open" selectedExcelFile))未生效。
把它转成vlax-invoke函数以后这句可行,但仍然提示实参太少,调试发现又是(setq worksheet (vlax-get-property sheets "Item" "标志牌"))未生效。
求助各位大佬!
页: 1 2 3 4 [5] 6
查看完整版本: 新手从零开始的第一份LISP程序全纪录